解决sendmail的“host map: lookup (domain): deferred”问题


大多数Linux系统都默认自带了sendmail,最近想通过sendmail将一些服务器信息直接发送到自己的邮箱里面,结果发送之后一直没什么反应,最后发现是因为我的服务器上没有合法的域名和MX解析记录,而sendmail默认会进行反向解析,所以就一直堆在队列里面发布出去。
解决办法很简单,直接关掉sendmail的反向解析就可以了,具体配置如下:

我发送邮件的命令为:
# mail -s "Daily report" guosuiyu@gmail.com < /var/log/report.txt 查看电子邮件队列信息: # sendmail -bp ---------------------------- /var/spool/mqueue (1 requests) -----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient----------- p6C71EPC020359 10 Tue Mar 19 14:02
(host map: lookup (gmail.com): deferred)

Total requests: 1
----------------------------
出现了"host map: lookup (domain): deferred"错误,意思就是说邮件的发送被延迟了。

解决办法很简单:
# vim /etc/mail/sendmail.cf
找到 #O ResolverOptions=+AAONLY 这一行信息,并把它的注释去掉。

# /etc/init.d/sendmail restart
重启sendmail以后即可成功发送邮件。

不过,即使邮件能够发送出去了,由于没有合法的域名和MX解析记录,稍微好点的邮箱都会把它丢到垃圾邮件中去,所以建议如果有自己的域名的话,可以考虑分配一个子域名和MX解析。

  1. No comments yet.
(will not be published)
*