我当前正在使用令牌和一些代码,这些代码$ expires = date = date(" u"( 1800;因此,用户请求链接后大约30分钟。php发送功能在几秒钟内将电子邮件发送到我域中的任何地址,但是,任何其他域,例如Gmail帐户,最多可能需要40分钟左右。有没有办法在我的PHP脚本中增加重置链接电子邮件的优先级?还是我只需要增加令牌到期并稍微降低安全性吗?
谢谢!
我尝试从不积极的结果中更改$和$ header信息。我还在堆放堆积上进行了大量的谷歌搜索和搜索。我主要找到有关如何设置基本发送函数的信息。
...
$expires = date("U") + 1800;
require 'config.php';
$userEmail = $_POST["email"];
$sql = "DELETE FROM pwdReset WHERE pwdResetEmail=?";
$stmt = mysqli_stmt_init($link);
if (!mysqli_stmt_prepare($stmt, $sql)) {
echo "There was an error!";
exit();
} else {
mysqli_stmt_bind_param($stmt, "s", $userEmail);
mysqli_stmt_execute($stmt);
}
$sql = "INSERT INTO pwdReset (pwdResetEmail, pwdResetSelector, pwdResetToken, pwdResetExpires) VALUES (?, ?, ?, ?)";
$stmt = mysqli_stmt_init($link);
if (!mysqli_stmt_prepare($stmt, $sql)) {
echo "There was an error!";
exit();
} else {
$hashedToken = password_hash($token, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($stmt, "ssss", $userEmail, $selector, $hashedToken, $expires);
mysqli_stmt_execute($stmt);
}
mysqli_stmt_close($stmt);
mysqli_close($link);
$to = $userEmail;
// Subject
$subject = 'Reset your mydomainhere password';
// Message
$message = 'We recieved a password reset request for your account. If you did not make this request, please disregard this email. Your password reset link is:';
$message .= '<a href="' . $url . '">' . $url . '</a></p>';
// Headers
$headers = "From: The mydomainhere Team <info@mydomainhere.org>rn";
$headers .= "Reply-To: info@mydomainhere.orgrn";
$headers .= "Content-type: text/htmlrn";
// Send e-mail
mail($to, $subject, $message, $headers);
header("Location: https://www.mydomainhere.org/login/forgotPass.php?reset=success");
} else {
header("Location: https://www.mydomainhere.org/login/forgotPass.php?reset=error");
exit();
}
PHP邮件功能正在工作,它的时间比预期发送的时间更长。我希望在消息中添加某种紧急标签,以便外部服务器会更快地接受它。
我可以在php邮件发送函数中添加紧急状态,以便用户接收到密码重置吗?
不,没有用于电子邮件的"加急交付"。存在"紧迫性"标题,但对交付没有影响。(唯一的效果是在某些客户端在消息上显示标志。(
如果要将某些消息传递到Gmail,则需要"最多40分钟左右",则邮件服务器有些问题,需要解决。这不是您的代码问题。