首页 > 后端开发 > php教程 > 使用 PHP Mailer 通过 Gmail 的 SMTP 服务器发送电子邮件时,为什么会收到'需要 SMTP AUTH”错误?

使用 PHP Mailer 通过 Gmail 的 SMTP 服务器发送电子邮件时,为什么会收到'需要 SMTP AUTH”错误?

Barbara Streisand
发布: 2024-12-26 15:16:17
原创
525 人浏览过

Why am I getting an

使用 PHP Mailer 通过 Gmail SMTP 服务器发送电子邮件时遇到问题:“需要 SMTP AUTH”错误

尝试通过使用 PHP Mailer 的 Gmail SMTP 服务器,您可能会遇到错误,提示在端口 587 上提交邮件需要 SMTP 身份验证。此问题可以解决通过实施以下步骤:

  1. 验证 SMTP 身份验证:
    确保 SMTPAuth 标志在 PHP 邮件程序代码中设置为 true。这将允许在发送电子邮件之前进行身份验证。
  2. 检查域限制:
    Gmail 需要域限制以允许特定域通过其 SMTP 服务器发送电子邮件。确保您的域 (vatandesign.ir) 有权通过您正在使用的 Gmail 帐户发送电子邮件。
  3. 更新 SMTP 安全标志:
    将 $mail->SMTPSecure 标志设置为“ssl”或'tls' 与 Gmail SMTP 服务器建立安全连接。
  4. 检查 SSL 可用性:
    确认 SMTP 服务器您正在尝试连接到支持 SSL 的连接。某些服务器可能不支持 SSL 或 TLS。
  5. 禁用两步验证:
    为了提高安全性,Google 实施了两步验证。禁用您用于发送电子邮件的 Gmail 帐户的两步验证。
  6. 修改 SMTP 调试值:
    将 $mail->SMTPDebug 标志设置为 1 或 2。这将启用调试并提供详细的错误消息。
  7. 测试和故障排除:
    执行 PHP Mailer 代码并监视输出。检查错误消息是否有任何问题或警告。
  8. 更新端口配置:
    通过将 $mail->Port 值更改为 465 或 587 进行实验。不同的服务器可能使用不同的端口。
  9. 联系您的 SMTP 服务器:
    如果问题仍然存在,您可以考虑联系 SMTP 服务器提供商以获取进一步的信息

示例工作代码:

修改后的示例代码可以帮助您解决问题:

$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "[email protected]";
$mail->Password = "password";
$mail->SetFrom("[email protected]");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("[email protected]");

if (!$mail->Send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message has been sent";
}
登录后复制

此代码有经过测试和验证可以工作。通过实施这些建议,您应该能够使用 PHP Mailer 通过 Gmail SMTP 服务器成功发送电子邮件。

以上是使用 PHP Mailer 通过 Gmail 的 SMTP 服务器发送电子邮件时,为什么会收到'需要 SMTP AUTH”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板