解决sendmail的“host map: lookup (domain): deferred”问题
大多数Linux系统都默认自带了sendmail,最近想通过sendmail将一些服务器信息直接发送到自己的邮箱里面,结果发送之后一直没什么反应,最后发现是因为我的服务器上没有合法的域名和MX解析记录,而sendmail默认会进行反向解析,所以就一直堆在队列里面发布出去。解决办法很简单,直接关掉sendmail的反向解析就可以了,具体配置如下:
我发送邮件的命令为:# mail -s "Daily report" [email protected] < /var/log/report.txt
查看电子邮件队列信息:
#sendmail-bp
----------------------------
/var/spool/mqueue(1requests)
-----Q-ID-------Size-------Q-Time-----------------Sender/Recipient-----------
p6C71EPC02035910TueMar1914:02
(hostmap:lookup(gmail.com):deferred)
Totalrequests:1
----------------------------
出现了"host map: lookup (domain): deferred"错误,意思就是说邮件的发送被延迟了。解决办法很简单:
#vim/etc/mail/sendmail.cf
找到 #O ResolverOptions=+AAONLY 这一行信息,并把它的注释去掉。# /etc/init.d/sendmail restart重启sendmail以后即可成功发送邮件。
不过,即使邮件能够发送出去了,由于没有合法的域名和MX解析记录,稍微好点的邮箱都会把它丢到垃圾邮件中去,所以建议如果有自己的域名的话,可以考虑分配一个子域名和MX解析。