我们有一台运行sendmail
的linux服务器,它通过我们的主邮件服务器来传递邮件,但是自从上周DNS服务器发生变化以来,就连接到我们的邮件服务器。 经过进一步调查, /var/log/maillog
显示如下所示的行, 邮件服务器的IP地址不正确 :
Apr 4 15:37:32 yip sendmail[20583]: p34JVgLE020540: to=<[email protected]>, ctladdr=<[email protected]> (0/0), delay=00:05:50, xdelay=00:02:00, mailer=esmtp, pri=258071, relay=mailserver.domain.tld. [xxx.xxx.xxx.xxx], dsn=4.0.0, stat=Deferred: Connection timed out with mailserver.domain.tld.
现在,我们上周通过编辑/etc/resolv.conf
更新了linux服务器的DNS服务器。 在linux服务器上运行dig mailserver.domain.tld
, host mailserver.domain.tld
或nslookup mailserver.domain.tld
,都会导致返回正确的IP地址。 sendmail
在哪里可以获取/caching不正确的IP地址,我该如何解决这个问题?
sendmail
。 nscd
(如果它正在系统中使用)。 另外请确保您有正确的MXlogging条目 。 Sendmail依靠MX查找。
尝试dig mx domain.tld
,看看是否导致正确的主机。 如果没有,您可以强制sendmail使用通常在/ etc / mail /中find的mailertable
文件来发送指定给特定域的邮件。
典型的mailertable条目如下所示:
xxx.com esmtp:[192.168.1.2]
其中“xxx.com”是域名,明确说明了交付的IP。
sendmail 会在重新构buildDNS之前caching有关主机状态的信息。 调整Timeout.hoststatus可以改变这一点,但是,然后再次重新启动sendmail为您的特定情况是要走的路(而不是等待超时过期)。
Sendmail本身并不执行任何caching,它依赖于本地名称服务器。
有一些值得检查的事情,尽pipe你可能已经做过了:
我知道他们都很基本,但是对于一个非常匆忙的pipe理员来说,做一个简单的错误就很容易。