我可以在PHP邮件发送函数中添加紧急状态,以便在用户接收到密码时不会过期



我当前正在使用令牌和一些代码,这些代码$ 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分钟左右",则邮件服务器有些问题,需要解决。这不是您的代码问题。

最新更新