PHP 计算机错误: 无法发送邮件.邮件程序错误: SMTP 错误: 无法进行身份验证



我正在使用PHPMailer发送电子邮件,我的代码与我的个人gmail帐户配合良好,但是,当我将个人电子邮件切换到域电子邮件时,它不起作用。

我的域名电子邮件由G suit托管。我已经启用了两步验证并为两封电子邮件设置了应用密码。

以下是我的代码:

$mail->SMTPDebug = 2;                               
$mail->isSMTP();                                            
$mail->Host       = 'smtp.gmail.com';                   
$mail->SMTPAuth   = true;                                   
$mail->Username   = 'xxxe@gmail.com'; //personal email                    
$mail->Password   = 'xxx-personal-app-password'; //personal app passwrod                           
$mail->SMTPSecure = 'tls';
$mail->Port       = 587;  

这是与我的个人Gmail帐户一起使用的。

对于我的域电子邮件,我仅将用户名和密码更改为域电子邮件和域 gmail 应用密码,但它不起作用。

$mail->Username   = 'xxx@domain.com';//domain email                   
$mail->Password   = 'xxx-domain-app-password'; //domain app password

它显示错误消息:

无法发送邮件。邮件程序错误: SMTP 错误: 无法进行身份验证。

只有当我登录到G suit管理控制台并将"允许用户管理他们对安全性较低的应用程序的访问"设置为"开"而不是选择"禁用访问或允许用户管理其访问权限"时,它才有效。这是因为我的应用密码错误还是 Google 认为我的应用不安全?如果我的应用程序不安全,为什么我的个人电子邮件可以正常工作?

有人可以帮助我解决这个问题吗?

只有当我登录到 G 套装管理控制台并将"允许安全性较低的应用程序"设置为"开"时,它才有效

这就是它的工作原理。

我曾经遇到过类似的问题。

所以取而代之的是:

$mail->SMTPSecure = 'tls';
$mail->Port = 587;

试试这个:

$mail->SMTPSecure = 'ssl'; 
$mail->Port = 465;

希望这有帮助!

对于 Gmail,如果您不想打开"安全性较低的应用程序"(这并不是真正不安全,但这是一个单独的主题(,唯一的选择是使用XOAUTH2身份验证。PHPMailer 的示例、文档和错误消息链接的故障排除指南将您发送到那里。这里要转发的内容太多了。

请注意,这与使用Google 的 API 不同。有了XOAUTH2您仍然可以使用常规SMTP。但请注意,像所有OAuth实现一样,它的设置非常不愉快,非常脆弱,糟糕的反馈机制意味着你可能很难发现它是否停止工作。

最新更新