我有一个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)]
我仔细检查了自1月份以来邮件用户的登录名未被更改。我将脚本中的地址和密码复制并粘贴到浏览器中的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邮件服务器......“不幸的是,我在这个域中没有电子邮件白名单框 - 它是免费的< 10用户帐户,显然没有该功能。
编辑2: 相关:http://support.google.com/mail/bin/answer.py?hl=en&answer=78775
编辑3: 我在Opera邮件中设置了帐户,并使用AUTH LOGIN和AUTH PLAIN设置成功发送。
答案 0 :(得分:1)
问题发生在我的网络托管服务商处,而不是Google的邮件服务器。
该帐户位于cPanel服务器上,管理员已将其设置为只有指定的用户帐户才能访问外部SMTP服务器。为了让我测试,他禁用了这个要求,我的邮件系统立即开始工作。
到目前为止,我没有找到关于如何在激活SMTP身份验证时作为授权用户之一登录cPanel的文档。如果我找到一些,我会更新。