今天客戶反應伺服器寄出一千多封信 (其實很少) 卻等了兩個小時都還沒有收到信!!
趕緊查 maillog,卻發現看到這個訊息
delivery temporarily suspended: Host or domain name not found. Name service error for name=gmail.com type=MX: Host not found, try again
這… 不是 dns 的問題嗎? 莫非那台機器沒設?? 立刻檢查 /etc/resolv.conf
nameserver 168.95.1.1 nameserver 168.95.192.1
沒問題啊~ 用 nsookup 看
# nslookup > set q=mx > gmail.com Server: 168.95.1.1 Address: 168.95.1.1#53 Non-authoritative answer: gmail.com mail exchanger = 20 alt2.gmail-smtp-in.l.google.com. gmail.com mail exchanger = 30 alt3.gmail-smtp-in.l.google.com. gmail.com mail exchanger = 5 gmail-smtp-in.l.google.com. gmail.com mail exchanger = 40 alt4.gmail-smtp-in.l.google.com. gmail.com mail exchanger = 10 alt1.gmail-smtp-in.l.google.com.
也沒問題啊!!~ 好吧~ 把 postfix 重啟… 然後 flush 一下 mail queue
# postqueue -c /etc/postfix -f # /sbin/service postfix restart
果然開始寄信了… 但是幾分鐘後… 又出現一堆錯誤訊息了!!!!
這…… 是甚麼原因呢?
googling…………………
原來是 chroot 造成抓不到 /etc/resolv.conf,只要提供給 postfix 自己專用的 resolv.conf 就好了!
提供 postfix 專用的 resolv.conf
很多建議都是除了 /etc/resolv.conf 之外,提供 postfix 一個專用的resolv.conf
作法如下
mkdir /var/spool/postfix/etc cp /etc/resolv.conf /var/spool/postfix/etc/resolv.conf 或是手動編輯 vi /var/spool/postfix/etc/resolv.conf # 內容放 nameserver 8.8.8.8 nameserver 8.8.4.4 nameserver 168.95.1.1 nameserver 168.95.192.1
前面兩個是 google 的,後面是 HiNet 的