Php
從 PHP 發送郵件給出不可路由的地址
我有一個執行 PHP 和 Exim4 的 Debian 伺服器(當然還有其他)。PHP 應用程序每天發送 1000 封電子郵件,一切正常,但是我現在有一個新客戶,我的 PHP/Exim4 無法發送到該帳戶。
PS 我添加了 –at– 來阻止爬蟲查找地址。
- 我檢查了 exim4 日誌,發現:
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
- 然後我使用以下命令檢查了 exim4 中的路由:
# 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
這看起來好像路由工作正常。我再次嘗試了應用程序電子郵件,但仍然收到 Unrouteable address 錯誤。
- 然後我嘗試了來自同一台伺服器的命令行電子郵件。
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 日誌中的“無法路由地址”錯誤,並且調試輸出表明該地址是可路由的。我不禁想到 Exim4 配置存在一些問題,但只有從 PHP 應用程序獲取郵件請求時,這是否是安全問題 - 我只是不知道。
有人可以指出我正確的方向嗎?
我不確定,可能是錯字,但在一種情況下,您在域名中有三個
mmm
(請參閱 exim4 日誌),而在另一種情況下,您有兩個mm
(請參閱您的路由測試和您的測試):echo
mentonegrammmar.net (does not exist) mentonegrammar.net (exists)
仔細檢查您的應用程序中的正確域名
PHP
。