我有一个较旧的PHP系统,它使用SMTP命令进行邮件。我们正在切换到gmail,我需要进行身份验证。我可以连接到服务器。不幸的是,我得到了530-5.5.1身份验证要求。了解更多信息,请访问"在我的PHP代码中发送MAIL FROM命令时的消息。
if (fputs($this->Socket, "MAIL FROM: \"admin\" <admin@yourdomain.com>\r\n")<0){
我找不到添加身份验证的明确示例。我在http://www.faqs.org/rfcs/rfc2554.html读到我必须在我的MAIL FROM命令中添加AUTH =。我在解释AUTH =
中的内容时遇到了麻烦Examples:
C: MAIL FROM:<e=mc2@example.com> AUTH=e+3Dmc2@example.com
S: 250 OK
您知道身份验证的格式吗?
答案 0 :(得分:1)
有多种方法可以进行SMTP身份验证,但其中一种方法是使用SMTP AUTH LOGIN
命令。会议记录如下:
host: 220 banner_here
client: EHLO StephaniePC
host: 250-name.of.host hello [clientip], pleased to meet you
host: 250-AUTH LOGIN PLAIN
host: 250 OK
client: AUTH LOGIN
host: 334 VXNlcm5hbWU6
client: am9lc21pdGg=
host: 334 UGFzc3dvcmQ6
client: bGV0bWVpbg0K
host: 235 2.7.0 Authentication successful
client: MAIL FROM: <sender@senderdomain.tld>
host: 250 2.1.0 Ok
client: RCPT TO: <recipient@recipientdomain.tld>
host: 250 2.1.0 Ok
client: DATA
host: 354 End data with <CR><LF>.<CR><LF>
....
您在上面看到的编码字符串是base64编码的。如果您有一个能够记录的邮件客户端,您可以尝试通过gmail发送消息,并且会话的记录应该看起来像上面的记录。
仅供参考,您可能希望使用phpmailer
,而不是自己编写代码进行SMTP身份验证。 phpmailer
可以进行SMTP身份验证,而且非常轻量级且易于使用。