【发布时间】:2012-09-21 20:49:34
【问题描述】:
我有一个 PHP 页面,它使用 PEAR Mail 通过 Google Apps 邮件帐户发送消息。该页面仅在秋季和冬季有效,并且在 1 月份最后一次使用时运行良好。
现在,当我为秋季准备网站时,此页面不再有效。我遇到了与SMTP Error 535 (Incorrect authentication data) using PEAR mail 中描述的完全相同的问题。该问题没有答案,我无法发表评论,所以我开始了一个新问题。
我使用的代码与 pavan kumar 在Send email using the GMail SMTP server from a PHP page 发布的代码相同。
错误信息是:
authentication failure [SMTP: Invalid response code received from server (code: 535, response: Incorrect authentication data)]
我仔细检查了邮件用户的登录名自一月份以来没有更改。我将脚本中的地址和密码复制并粘贴到浏览器的 Gmail 登录中。它起作用了,所以我知道我的参数是正确的。此帐户是企业域地址,而不是 @gmail.com。
我正在尝试连接:
$host = "ssl://smtp.gmail.com";
$port = "465";
我也尝试指定 tls:// 和端口 587,但没有运气。根据另一个 SO 线程中的建议,我还将主机设置为“googlemail.com”而不是“gmail.com”。
我对 $smtp 对象做了一个 var_dump(),并确认我的地址和密码已成功且准确地传递给它。
该帐户位于最近升级到 PHP 5.3.5 和 Apache 2.2.22 的 cPanel 系统上。变化似乎不太可能引发这个问题,但我提到它以防它可能是一个因素。
编辑:找到http://support.google.com/a/bin/answer.py?hl=en&answer=176600,上面写着“...您必须使用设备或应用程序的 IP 地址为您的域配置 SPF 记录,以确保收件人不会拒绝从它发送的邮件。您还必须添加此IP 地址添加到您的 Google Apps 控制面板中的电子邮件白名单框中。例如。如果您的发送设备从 123.45.67.89 发送,请将该地址添加到您的 SPF 记录中,而不要从记录中删除 Google Apps 邮件服务器...”在此域中没有电子邮件白名单框 - 它是免费的
编辑 2: 相关:http://support.google.com/mail/bin/answer.py?hl=en&answer=78775
编辑 3: 我在 Opera 邮件中设置了帐户,并使用 AUTH LOGIN 和 AUTH PLAIN 设置成功发送。
【问题讨论】:
-
另一个用户(一定不是同一个问题,只是说)今天用gmail认证也有问题:stackoverflow.com/questions/12663783/…
-
我正在查看另一篇文章中的示例。他正在使用像“username.gmail.com”这样的用户名结构。你确定这是正确的吗?另外,您尝试发送电子邮件的帐户是否已启用外部访问?
-
hakre,感谢您的链接。我会读的。 Simon Germain,我没有使用点分隔的用户名,只是 user@domain.com。感谢您对启用外部访问的提醒。设置面板显示“状态:已启用 POP” 这就是我所需要的吗?自从我上次工作以来,他们的控制面板发生了很大变化。