[转]发送邮件提示“551 User not local; please try ”错误的原因及解决办法

时间:2022-09-24 13:05:53

本文转自:http://www.biglee.cn/blog/article.asp?id=204

一网站要嵌入一个客户反馈系统。为了方便收集反馈信息,并能及时查看信息,我决定以将反馈内容提交到邮箱。   用了一个之前收集的PHP写的SMTP发邮件类函数,很快就搞定了,本地测试正常。传到服务器后发现收不到信,看了下函数,发现有Debug功能,开启Debug,反馈的信息如下:

eG15Ym94MTQ3ODk2MzI1 235 Authentication successful >; MAIL FROM:; 250 Ok >; RCPT TO:; 551 User not local; please try Error: Remote host returned "551 User not local; please try " Error: Error occurred while sending RCPT TO command. Error: Cannot send email to ; Disconnected from remote host

  查了些资料,说出现以上错误信息的原因和所发邮件有没有内容、内容大小等都没有关系,是中国*的国家防火墙(GFW,又名“金盾工程”)做了过滤的原因,它(金盾工程)定义了大陆的IP连接到大陆以外(如香港、*、欧洲等)的邮件服务器是不可以自己发邮件给自己的!

  相反的,我是用PHP写的发送邮件程序,在海外主机上用腾讯企业邮箱的SMTP发送邮件。看来也是被墙了。再仔细看了下上面那个解释,我注意到“不可以自己发邮件给自己”,正好我为了方便,就是用自己和邮箱账号发给自己的邮箱来收集反馈信息,那我就换个用户来发送试试看,登录腾讯企业邮箱管理,新建了一个专门发送邮件的邮箱账号,再上传测试,成功了。

  问题是解决了,但是我不明白的是,为什么自己邮箱给自己的邮箱发送就被阻止了,而发给同个服务器同个域下的另一个账号就没问题呢?不知道是出于什么目的。。。。