遇到的問題是,系統送信時,透過 php 網頁程式送給 sendmail,再送到目的地的信箱;但是,收件人很久才收到這封 email. 查了一下 sendmail 的 queue, 用以下 command, 出現了以下錯誤訊息
$ sudo mailq
p495lhl1016320 5731 Mon May 9 13:50可是,在 DNS 的設定上並沒有錯;查了一下大家的解決方案,好像只有一個是比較符合的;但是,它解釋的也不是很清楚。詳細說明,請參考 host_map__lookup_(domain)__deferred(host map: lookup (yahoo.com.tw): deferred) p49654DW016419 5731 Mon May 9 14:07 (host map: lookup (yahoo.com.tw): deferred) p4947h00015791 5731 Mon May 9 12:10 (host map: lookup (yahoo.com.tw): deferred) p490RhMm014614 3476 Mon May 9 08:29 MAILER-DAEMON (Deferred: Name server: miiicasa.com.: host name lookup failu) p48K2BMl013111 1547 Mon May 9 04:03 (Deferred: Name server: miiicasa.com.: host name lookup failu) p480RhOc006719 3435 Sun May 8 08:29 MAILER-DAEMON (Deferred: Name server: miiicasa.com.: host name lookup failu)
With Sendmail 8.12.x, you can ignore AAAA "SERVFAIL" or "NXDOMAIN" errors and continue DNS processing with the following entry in your macro configuration (.mc) file:
define(`confBIND_OPTS', `WorkAroundBrokenAAAA')dnl暫時就只能先這麼做了,如果還有問題,可以用以下指令看 sendmail 的動作
To watch Sendmail's DNS queries when processing a queued message, use the -d8.8 debug syntax:
sendmail -v -d8.32 -qImessage_ID另外一方面,因為看到 yahoo 又看到 deferred, 所以也想到了,yahoo 會有防堵類似垃圾信機制,所以就先 ssh 到發信主機,去測試一下,果真是 deferred 的問題。
kevin_luo@w1 { /var/log }$ telnet mx1.mail.tw.yahoo.com 25 Trying 203.188.197.119... Connected to mx1.mail.tw.yahoo.com (203.188.197.119). Escape character is '^]'. 421 4.7.0 [GL01] Message from (202.153.186.89) temporarily deferred - 4.16.50. Please refer to http://postmaster.yahoo.com/errors/postmaster-21.html Connection closed by foreign host.要解決這個問題,就只能按它的建議,去那個 URL 看看,並填寫相關的訊息,讓 yahoo mail 將你的 mail server 列入 deferred 時間較長的名單,或甚至於加到 whitelist.
0 意見:
張貼留言