我已经安装并配置了 Postfix。它可以正常发送电子邮件。
我重启了服务器,但电子邮件在 SMTP 主机上无法进行 DNS 查找。可通过重启重复此操作。
如果我重新启动服务,一切都会正常运行,直到下次重新启动为止。
我担心 Postfix 可能在另一个网络服务准备就绪之前就启动了?有什么修复方法吗?
Oct 22 12:40:12 homer postfix/cleanup[1346]: 848E9E60F89: message-id=<[email protected]>
Oct 22 12:40:12 homer postfix/qmgr[1336]: 848E9E60F89: from=<root@homer>, size=363, nrcpt=1 (queue active)
Oct 22 12:40:12 homer postfix/smtp[2234]: 848E9E60F89: to=<[email protected]>, relay=none, delay=0.02, delays=0.02/0/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=smtp.gmail.com type=AAAA: Host not found, try again)
答案1
所以我认为这是由于 postfix 的一个有趣行为,默认情况下,它将自己置于 chroot 中,以实现更高的安全隔离。但是,在这样做时,它会将文件复制/etc/resolv.conf
到该 chroot 中。因此,如果该文件在主机本身上发生变化,它将无法在 postfix 中更新,这意味着如果您以前使用的 DNS 服务器不再可访问,那么 postfix 将无法查找 DNS 条目,因此如果它需要将电子邮件转发到域(或smtp.gmail.com
在这种情况下),它将无法发送电子邮件。
这只发生在某些配置下,例如,对于软件包,resolvconf
这种情况不应该发生,因为postfix
会安装钩子,resolvconf
这样当它更新 DNS 设置时,它也会重新加载 postfix。要解决这个问题,您需要找出正在更新的内容/etc/resolv.conf
,然后让它运行并重新启动 postfix。