Ads 468x60px

Pages

2011年5月9日 星期一

host map: lookup (domain): deferred


遇到的問題是,系統送信時,透過 php 網頁程式送給 sendmail,再送到目的地的信箱;但是,收件人很久才收到這封 email. 查了一下 sendmail 的 queue, 用以下 command, 出現了以下錯誤訊息
$ sudo mailq
p495lhl1016320     5731 Mon May  9 13:50                  (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)                                         
可是,在 DNS 的設定上並沒有錯;查了一下大家的解決方案,好像只有一個是比較符合的;但是,它解釋的也不是很清楚。詳細說明,請參考  host_map__lookup_(domain)__deferred

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.