我没有对 sendmail 进行任何更改,现在由于此错误,它无法发送任何电子邮件(我使用我的 ISP SMTP 服务器):
1月28日 10:34:36 zenorebirth sm-mta[3225]: p0S9htol031342: [电子邮件保护],delay=05:50:00,xdelay=00:00:00,mailer=relay,pri=17278301,relay=smtp-server.nycap.rr.com,dsn=4.0.0,stat=Deferred:名称服务器:smtp-server.nycap.rr.com:主机名查找失败
我可以通过 telnet 进入 smtp-server.nycap.rr.com 并从 Linux 机器顺利发送邮件。调试信息:
# sendmail -v -d8.20 -qIp0SFnrG2009232
Running /var/spool/mqueue/p0SFnrG2009232 (sequence 1 of 1)
dns_getcanonname(zeno.biyg.org, trymx=1)
dns_getcanonname: trying zeno.biyg.org. (A)
YES
dns_getcanonname: zeno.biyg.org
dns_getcanonname(biyg.net, trymx=1)
dns_getcanonname: trying biyg.net. (A)
YES
dns_getcanonname: biyg.net
getmxrr(smtp-server.nycap.rr.com, droplocalhost=1)
getmxrr: res_search(smtp-server.nycap.rr.com) failed (errno=110, h_errno=2)
<[email protected]>... Deferred: Name server: smtp-server.nycap.rr.com: host name lookup failure
还:
# echo "/map host smtp-server.nycap.rr.com" | sendmail -d8.20 -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> map_lookup: host (smtp-server.nycap.rr.com) dns_getcanonname(smtp-server.nycap.rr.com, trymx=1)
dns_getcanonname: trying smtp-server.nycap.rr.com. (A)
YES
dns_getcanonname: smtp-server.nycap.rr.com
returns smtp-server.nycap.rr.com. (0)
>
sendmail.cf:http://pastebin.com/uXxZCZwS
答案1
我在这里有点冒险,但我认为问题出在你的远程主机上......
getmxrr(smtp-server.nycap.rr.com, droplocalhost=1)
getmxrr: res_search(smtp-server.nycap.rr.com) failed (errno=110, h_errno=2)
<[email protected]>... Deferred: Name server: smtp-server.nycap.rr.com: host name lookup failure
看起来 res_search 是罪魁祸首,它搜索的内容 (smtp-server.nycap.rr.com) 产生了错误。根据 netdb.h(我认为),该错误是非权威主机或 SRVFAIL。
检查 DNS,看起来该主机确实有问题(请原谅使用 nslookup):
Non-authoritative answer:
Name: smtp-server.nycap.rr.com
Address: 75.180.132.33
nslookup
> set q=ptr
> 75.180.132.33
Non-authoritative answer:
33.132.180.75.in-addr.arpa name = cdptpa-omtalb.mail.rr.com.
我想说这看起来像是正向/反向不匹配,但我可能错了。这可能只是他们的邮件集群中的一个错误条目。我认为它在调试模式下工作的原因是跳过了规则集 3,并且该规则集的一部分正在对目标邮件服务器进行反向查找。
您可能能够使用 mailertable 来解决这个问题,这将在很大程度上找出 DNS 信息是罪魁祸首。看看这个——解决 sendmail 中的主机名查找失败