我有一个尝试发送电子邮件的PHP脚本,但在我的本地计算机上不断触发此错误:
Warning: mail(): SMTP server response:
554 5.7.1 [TPG-B01] Backscatter rejected to prevent DNSBL listings.
Please reject mail during the SMTP session. For more information,
see http://spamlinks.net/prevent-secure-backscatter.htm
谷歌搜索几乎没有透露该错误的含义,并且引用的URL似乎已关闭。有谁知道是什么原因造成的?
答案 0 :(得分:2)
我终于找到了它。
当邮件信封发件人为空时,即当它与远程SMTP服务器通信并发送如下内容时,会发生此错误:
220 mail.tpg.com.au ESMTP (mail14) Sendmail ready.
的HELO localhost
强>
250 mail14.tpgi.com.au Hello [x.x.x.x] (may be forged), pleased to meet you
的MAIL FROM:<>
强>
250 2.1.0 <>... Sender ok
即使它说“发件人确定”,但不确定。发送消息后,将触发上述554错误。
解决方案是确保PHP的sendmail_from
设置有效(而不是空)。您可以在php.ini
文件中执行此操作,如此...
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from=foo@bar.com
或在你的剧本中......
ini_set('sendmail_from', 'foo@bar.com');
希望能帮助其他人。我花了几个小时来追踪它。