我有一个运行PHP和Exim4的Debian服务器(当然还有其他的东西)。 PHP应用程序每天发送1000封电子邮件,所有这些工作都正常,但现在我有了一个新客户,而且我的PHP / Exim4无法发送到这个帐户。
PS我加了–at–来阻止爬虫find地址。
2014-04-02 08:48:10 1WV7TW-0001Em-Od <= support --at-- sobs.com.au H=localhost [127.0.0.1] P=esmtp S=1215 2014-04-02 08:48:11 1WV7TW-0001Em-Od ** az --at-- mentonegrammmar: Unrouteable address 2014-04-02 08:48:11 1WV7TW-0001Em-Od Completed
# exim -bt az --at-- mentonegrammar R: dnslookup for az --at-- mentonegrammar az --at-- mentonegrammar router = dnslookup, transport = remote_smtp host mail.mentonegrammar [58.96.103.231] MX=5
这看起来好像路由工作正常。 我再次尝试应用程序的电子邮件,仍然得到无法路由的地址错误。
然后我尝试从同一台服务器的命令行电子邮件。
echo "Test message" | mail -s "Test message" az --at-- mentonegrammar
这封电子邮件根据需要工作,但我的PHP应用程序发送的电子邮件仍然失败。
$mime = new Mail_mime(); $mime->setHTMLBody($body); $content = $mime->get(array('html_charset' => 'utf-8')); $formattedHeaders = $mime->headers($headers); $smtp = Mail::factory("smtp", array()); $result = $smtp->send($headers["To"], $formattedHeaders, $content);
如上所述,这个服务器和应用程序已经成功发送了1000个电子邮件。
Mentone Grammar的IT没有收到任何其他电子邮件的问题。
总之,我一直回到exim4日志中的'Unrouteable address'错误,并且debugging输出指出地址是可路由的。 我不禁想到Exim4configuration有问题,但是只有从PHP应用程序获取邮件请求时,才是安全的事情 – 我只是不知道。
有人可以指出我正确的方向吗?
我不确定,也许是一个错字,但在一个情况下,你有三个mmm (见exim4日志),另一个你有两个mm (见路由testing和echotesting)的域名:
mentonegrammmar.net (does not exist) mentonegrammar.net (exists)
在PHP应用程序中仔细检查正确的域名。