“SMTP 错误: 无法验证” 在 PHPMailer

2022-08-30 08:54:34

我在一个简单的脚本中使用PHPMailer来发送电子邮件通过Gmail,我得到了一个“未知错误”(至少对我来说!

SMTP 错误: 无法进行身份验证。错误: SMTP 错误: 无法进行身份验证。

SMTP 服务器错误: 5.7.1 用户名和密码不被接受。更多信息请见 535 5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 p38sm2467302ybk.16

我已经阅读了有关为SSL / TLS连接配置OpenSSL的信息,并且我做到了。Apache和PHP配置正确(OpenSSL扩展在PHP中运行,mod_ssl在Apache 2.2.16中运行)。

这是 PHP 脚本:

 <?php
  require_once ("PHPMailer\class.phpmailer.php");
  $Correo = new PHPMailer();
  $Correo->IsSMTP();
  $Correo->SMTPAuth = true;
  $Correo->SMTPSecure = "tls";
  $Correo->Host = "smtp.gmail.com";
  $Correo->Port = 587;
  $Correo->UserName = "foo@gmail.com";
  $Correo->Password = "gmailpassword";
  $Correo->SetFrom('foo@gmail.com','De Yo');
  $Correo->FromName = "From";
  $Correo->AddAddress("bar@hotmail.com");
  $Correo->Subject = "Prueba con PHPMailer";
  $Correo->Body = "<H3>Bienvenido! Esto Funciona!</H3>";
  $Correo->IsHTML (true);
  if (!$Correo->Send())
  {
    echo "Error: $Correo->ErrorInfo";
  }
  else
  {
    echo "Message Sent!";
  }
?>

用户名和密码是可以的,我在Thunderbird中尝试过,没有任何问题。我还使用了SSL身份验证和端口465,得到了相同的错误。


答案 1

我遇到了这个问题。为了让它正常工作,我必须转到 myaccount.google.com ->“登录和安全性” - >“具有帐户访问权限的应用程序”,然后将“允许安全性较低的应用程序”更改为“打开”(靠近页面底部)。

或者,您可以按照此直接链接访问这些设置

enter image description here


答案 2

这是GMail问题

阅读此谷歌帮助 (https://support.google.com/mail/answer/14257?p=client_login&rd=1)

  1. 打开您的网络浏览器,然后 http://mail.google.com/mail 登录 Gmail。如果您看到文字验证请求,请键入扭曲图片中的字母并完成登录。
  2. 关闭浏览器,然后再次尝试在电子邮件客户端中访问您的邮件。
  3. 如果您仍然遇到问题,请访问 http://www.google.com/accounts/DisplayUnlockCaptcha 并使用您的 Gmail 用户名和密码登录。如有必要,请输入扭曲图片中的字母。
  4. 单击“继续”。
  5. 重新启动邮件客户端,然后再次尝试访问电子邮件客户端中的邮件。

SMTP Error: Could not authenticate

Gmail issue


推荐