Php

從 PHP 發送郵件給出不可路由的地址

  • April 2, 2014

我有一個執行 PHP 和 Exim4 的 Debian 伺服器(當然還有其他)。PHP 應用程序每天發送 1000 封電子郵件,一切正常,但是我現在有一個新客戶,我的 PHP/Exim4 無法發送到該帳戶。

PS 我添加了 –at– 來阻止爬蟲查找地址。

  1. 我檢查了 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
  1. 然後我使用以下命令檢查了 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 錯誤。

  1. 然後我嘗試了來自同一台伺服器的命令行電子郵件。
echo "Test message" | mail -s "Test message" az --at-- mentonegrammar

此電子郵件按要求工作並到達,但來自我的 PHP 應用程序的電子郵件仍然失敗。

  1. 我檢查了應用程序:
$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);
  1. 如前所述,此伺服器和應用程序成功發送了 1000 封電子郵件。
  2. Mentone Grammar 的 IT 人員在接收任何其他電子郵件時沒有表示任何問題。

總之,我不斷回到 exim4 日誌中的“無法路由地址”錯誤,並且調試輸出表明該地址是可路由的。我不禁想到 Exim4 配置存在一些問題,但只有從 PHP 應用程序獲取郵件請求時,這是否是安全問題 - 我只是不知道。

有人可以指出我正確的方向嗎?

我不確定,可能是錯字,但在一種情況下,您在域名中有三個mmm(請參閱 exim4 日誌),而在另一種情況下,您有兩個mm(請參閱您的路由測試和您的測試):echo

mentonegrammmar.net (does not exist)

mentonegrammar.net (exists)

仔細檢查您的應用程序中的正確域名PHP

引用自:https://serverfault.com/questions/586073