0

我使用 HostGator 进行托管,我正在使用 PHP Mailer 包连接到 google smtp 服务器并发送邮件。

这是我连接到服务器的代码部分:

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 1;
$mail->CharSet="UTF-8";
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->Username = 'user';
$mail->Password = 'pass';
$mail->SMTPAuth = true;

这是我得到的错误:

在此处输入图像描述

也许谷歌阻止我从外部服务器登录?如果是这样,我该如何永久解决这个问题?我确信我的登录凭据是正确的。

4

1 回答 1

0

在尝试将 Google 的 SMTP 与 python 一起使用时(特别是在使用 Django 时),我遇到了类似的问题。以下是我用来解决问题的步骤(其中一些是“众所周知的”并在许多地方进行了报道,其他则不是)。

  1. 我个人使用 TSL + 端口 587。但是,SSL + 端口 465 也是有效的(你有)。

  2. 确保您在 gmail 中具有适当的安全设置。其中一些可能不是必需的,但这是我必须设置的。

    设置 > 转发和 POP/IMAP > 启用 IMAP 访问。设置 > 帐户和导入 > 更改帐户设置:> 其他 Google

    帐户设置 > 登录和安全 > 连接的应用和网站 > 允许安全性较低的应用(启用/打开)。

  3. 最后(这是使我的系统正常工作的步骤),重置您的密码。

无论出于何种原因,我不断收到来自 gmail 的错误提示我确保我的登录是正确的/通过浏览器登录,尽管我绝对确定登录信息是正确的(并且能够通过浏览器使用这些凭据登录)。但是,一旦我更改密码并再次尝试,它“神奇地”起作用了。

这可能只是 gmail 的一项安全功能,如果您在启用权限之前尝试通过应用程序访问 gmail,那么它将阻止来自未知应用程序(或至少该应用程序)的访问,直到它们真正“验证”是你。不过,这只是猜测……

于 2015-08-10T15:04:27.983 回答