做了一个邮件转发的代理小程序,需要向SMTP服务器发送自定义邮件。
在调试过程中,用户名、密码都通过验证了,在发送邮件主体信息时,SMTP邮件服务器返回:
550 ILLEGAL CONNECTION
检查了与SMTP服务器交互的所有信息,发现在与服务器打招呼时,使用了以下的语句:
EHLO 10.0.0.120:40712
EHLO 后面是我自己生成的本次连接的IP和端口信息,当时随手就这么写了,该语句与SMTP服务器正常交互。
感觉问题可能出在这里,于是按EHLO语句的标准用法:
EHLO 10.0.0.120
测试通过,SMTP服务器正常接收邮件。
结论:EHLO语句是客户端标识自己的语句,后面必须是客户主机名或IP地址,写了多余的东西,可能会被SMTP服务端拒收。