最近遇到了一个比较奇怪的问题,某个注册网站用户无法收到确认邮件,但并不是所有用户都无法都到。。

该邮件发送程序直接调用了本机的sendmail来发送确认邮件。

检查了一下sendmail的日志,发现昨天晚上8点开始,所有sendmail的邮件都无法发送成功,报错信息为域名解析失败。

在主机上ping了一下搜狐百度等网站,发现ping不通,初步确认为主机dns设置错误。

检查主机的dns设置为google的8.8.8.8,修改为公司自己的域名服务器以后,sendmail恢复正常。

但其中仍有一个邮箱地址无法发送邮件,报错信息仍然为域名无法解析。ping域名是通的,nslookup正常,tenlet 25端口也正常。

查了一些资料发现,sendmail默认的发件人为:用户名@主机名,这个主机名在internet上是没有dns解析的,如果用户的邮件服务器开了域名认证或者dns反向查询的话,发送就会失败。

建议以后还是不要调用系统的sendmail来发邮件了,通过公司的邮件服务器发送比较靠谱。