无法使用 phpMailer 连接到 gmail

Unable to connect to gmail using phpMailer

我的 php 网站一直在使用 phpMailer 使用其电子邮件地址和密码连接到 Gmail 帐户,然后从该帐户发送一封 HTML 电子邮件。事情已经工作了一年,但最近我在尝试通过 phpMailer 发送某些电子邮件地址时遇到以下错误:

SMTP -> 错误:服务器未接受密码:535-5.7.8 用户名和密码未被接受。了解更多信息 535 5.7.8 https://support.google.com/mail/answer/14257 x142sm1800199iod.31 - gsmtp

下面是我的 PHP 代码:

//initialize variable
$mail = new PHPMailer();
$mail->IsSMTP(); 
$mail->SMTPDebug = 1; 
$mail->SMTPAuth = true;  
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->IsHTML(true);

//set pw and user
$mail->Username = $from_email;  // SMTP username/email
$mail->Password = $pw; // SMTP password

$mail->From = $from_email;
$mail->FromName = $from_name;
$mail->AddAddress($email,$name);//add recipient address and name 
$mail->Subject = $subject;
$mail->Body = $body;//HTML email body

//send mail
$mail->Send();

奇怪的是,这个问题只发生在一些邮箱账户上,而对于有问题的账户,无论他们账户下的"Allow less secure apps"设置是否打开,都会出现这个问题。

因为这已经工作了一年多而且这个 "Username and Password not accepted" 错误最近才出现并且只针对某些电子邮件帐户,我想知道 Google 的结尾是否有任何改变允许应用程序连接到电子邮件帐户。

任何 help/info 将不胜感激。

是的 google 确实更改了他们的身份验证,是的,允许安全性较低的应用程序并不总是有效。

幸运的是 phpmailer 不久前添加了对 XOAUTH2 的支持,所以如果您 update to the latest version 阅读文档、示例和 wiki,您会没事的。