我在发送邮件时遇到问题,主要是发送到使用 Outlook.com 作为邮件服务器的域。
例如:
Jul 5 15:38:20 vm-dns-mail postfix/smtp[29249]: B6A3A20113E: to=<[email protected]>, relay=none, delay=189023, delays=189019/0.05/4/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=grassvalley-com.mail.eo.outlook.com type=AAAA: Host not found, try again)
但它有一个正确的 MX 记录:
vm-dns-mail ~/bin # dig mx grassvalley.com
[...]
;; ANSWER SECTION:
grassvalley.com. 7362 IN MX 5 grassvalley-com.mail.eo.outlook.com.
我可以通过 telnet 连接到它:
vm-dns-mail ~/bin # telnet grassvalley-com.mail.eo.outlook.com 25
EHLO
Trying 207.46.163.30...
Connected to grassvalley-com.mail.eo.outlook.com.
Escape character is '^]'.
220 CO9EHSMHS019.bigfish.com Microsoft ESMTP MAIL Service ready at Fri, 5 Jul 2013 19:45:12 +0000
250-CO9EHSMHS019.bigfish.com Hello [85.12.6.130]
250-SIZE 157286400
250-PIPELINING
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-AUTH
250-8BITMIME
250-BINARYMIME
250 CHUNKING
我以为是 IPV6 问题,因为这个虚拟机无法连接到 IPV6。所以我在 main.cf 中添加了以下行:
inet_protocols = ipv4
但它只是将问题改成了这样:
Jul 5 21:41:38 vm-dns-mail postfix/smtp[30661]: C1102201234: to=<[email protected]>, relay=none, delay=2, delays=0.01/0/2/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=cjp-be.mail.eo.outlook.com type=A: Host not found, try again)
什么可能导致这个相当烦人的问题?
答案1
这就是 resolv.conf 在 Postfix 的 chroot 中的样子。
vm-dns-mail /var/spool/postfix/etc # cat resolv.conf
options timeout:1 attempts:1
nameserver 8.8.8.8
nameserver 8.8.4.4
删除options timeout:1 attempts:1
似乎已经解决了问题。保留该行,但添加其他 DNS 服务器(例如 opendns)似乎也可以解决问题...
我会继续运行一些测试并监控它。