解决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(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解析。