【发布时间】:2020-10-27 17:54:54
【问题描述】:
我正在使用 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 认为我的应用不安全?如果我的应用程序不安全,为什么使用我的个人电子邮件,它可以工作?
有人可以帮我解决这个问题吗?
【问题讨论】:
-
如果您在 Google 上搜索“使用 php 发送 gmail”之类的内容,您会收到很多关于这个确切问题的帖子/文章,这些帖子/文章将详细解释它。
-
问题不是我的应用程序无法使用 php 发送 gmail,问题是它适用于我的个人 gmail 帐户,但不适用于我由 G suit 托管的域电子邮件。我的代码在我的个人 gmail 上运行良好。
标签: php email gmail phpmailer google-workspace