Sendmail名称parsing问题

我被要求看看一个旧的RedHat服务器(旧的uname -aLinux server 2.4.20-27.7 #1 Thu Dec 11 15:04:48 EST 2003 i686 unknown ),这是有问题的sendmail 。 这台服务器是2003年build立的,从那以后我从中学到的东西并没有真正被感动。 电源故障后,需要一个fsck来启动,从那以后用户没有得到他们的邮件。

我看了一下/var/log/maillog ,并且有很多这样的行:

 Aug 22 21:26:22 server sendmail[12250]: p7KIujl05665: to=<id5367@demons.murgent.com>, delay=2+00:22:16, xdelay=00:00:20, mailer=esmtp, pri=4369005, relay=demons.murgent.com., dsn=4.0.0, stat=Deferred: Name server: demons.murgent.com.: host name lookup failure Aug 22 21:27:22 server sendmail[12250]: p7KHujo05650: to=<apache@sweclo-web02.driften.net>, delay=2+00:27:53, xdelay=00:00:20, mailer=esmtp, pri=4404312, relay=sweclo-web02.driften.net., dsn=4.0.0, stat=Deferred: Name server: sweclo-web02.driften.net.: host name lookup failure Aug 22 21:27:43 server sendmail[12435]: p7MJNuk12435: SYSERR: putoutmsg ([190.242.41.83]): error on output channel sending "250 2.1.5 <user@domain.com>... Recipient ok (will queue)": Connection reset by [190.242.41.83] Aug 22 21:27:43 server sendmail[12435]: p7MJNuk12435: lost input channel from [190.242.41.83] to MTA after rcpt Aug 22 21:27:43 server sendmail[12435]: p7MJNuk12435: from=<no-reply.1@nyc.gov>, size=0, class=0, nrcpts=0, proto=ESMTP, daemon=MTA, relay=[190.242.41.83] Aug 22 21:28:22 server sendmail[12250]: p7KIujm05665: to=<noreply@cgsociety.org>, delay=1+23:39:41, xdelay=00:00:20, mailer=esmtp, pri=4413757, relay=cgsociety.org., dsn=4.0.0, stat=Deferred: Name server: cgsociety.org.: host name lookup failure 

但是,名称parsing从命令行与我尝试过的每个实用程序( pinghostdig …)都起作用。 服务器也运行一个named ,但似乎已经转移到某个时候使用另一个名称服务器( /etc/resolv.conf有服务器IP列出,但注释掉,而是指向路由器,它转发到ISP的DNS服务器)。 sendmail是否有一些内部的名字parsing方法?

在今天之前,我从来没有看过sendmail.cf文件(看到的东西是看不见的),但是没有多大用处。 似乎没有提到名称parsing。 任何想法我应该检查?

编辑:请求的configuration文件:

resolv.conf 🙁 192.168.0.25是服务器,192.168.0.1是网关/路由器)

 # nameserver 192.168.0.25 nameserver 192.168.0.1 

named.conf

 // generated by named-bootconf.pl options { directory "/var/named"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ // query-source address * port 53; }; // // a caching only nameserver config // zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "hosts.domain.com"; allow-update { none; }; }; zone "0.168.192.in-addr.arpa" IN { type master; file "db.192.168.0"; allow-update { none; }; }; key "key" { algorithm hmac-md5; secret "secret-key-edited-out"; }; 

编辑2:我重新安排了resolv.conf文件回resolv.conf服务器本身的失败,现在它是缓慢但确定(700兆赫赛扬,宇!)处理邮件队列。 我不确定它已被评论了多长时间,但也许最近有人被要求看看…无论如何,为什么只有在使用它自己的DNS时才能工作?

  • 防止邮件被标记为垃圾邮件
  • Sendmail发送,但从来没有交付
  • sendmail向本地邮件转发主机
  • 当负载平均值过高时,SendMail守护程序操作的问题
  • 统计sendmail发送的消息数量
  • 在旧服务器上找不到邮件configuration数据
  • 2 Solutions collect form web for “Sendmail名称parsing问题”

    这可能有帮助。

    https://stackoverflow.com/questions/43970/configuring-sendmail-behind-a-firewall

    简而言之:

    更新sendmail.mc与:

      define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl 

    然后configurationmail.switch文件:

      # cat /etc/mail/service.switch hosts files 

    编辑:让我们看看resolv.conf的输出。 另外,我们是否也可以获得named.conf的输出?

    编辑2:它看起来像这台机器有自己的主DNS服务器与“hosts.domain.com”中的特定区域logging,在重新启动之前解决。 我会想象,如果你看这个区域文件,你会看到该区域文件中的域名与sendmail无法parsing的域名相匹配。 当然,考虑到这个名字服务器在/etc/resolv.conf中被注释掉了,那真的不太可能。 但是,只是大小写,取消注释该行,看看是否sendmail将解决的领域。

    我遇到了与sendmail和不正确的名称parsing之前…

    问题是我的“公共”IP地址没有分配给我的sendmail框上的任何接口。 Sendmail会尝试在我的电子邮件中解决域名问题,直接发送到正确的邮件服务器,然后重新尝试将收到的邮件转发给它公开的NAT地址。 唯一的解决方法是在本地设置一个绑定服务器,并为其提供parsing为该专用地址的条目。

    我正在阅读Rilindo的答案…这听起来像是一个更好的解决scheme。 我可能不得不在某个时候尝试。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.