我的其中一台 sendmail 服务器出了问题。用户通知我注册邮件未送达。日志文件显示邮件已加入队列,但队列为空:
sudo cat /var/log/mail.log | grep email
(本例中使用了混淆的电子邮件和服务器地址):
1 月 6 日 23:33:57 fx1 sendmail[9292]:u06MXvuk009292:to=email,ctladdr=sender-email (1001/100),delay=00:00:00,xdelay=00:00:00,mailer=relay,pri=38128,relay=[127.0.0.1] [127.0.0.1],dsn=2.0.0,stat=Sent (u06MXv7o009293 消息已接受传送)
1 月 6 日 23:34:00 fx1 sm-mta[9295]: u06MXv7o009293: to=, delay=00:00:03, xdelay=00:00:03, mailer=esmtp, pri=128308, reply=mx3.hotmail.com. [65.55.37.120], dsn=2.0.0, stat=Sent ( <70001a6bb8ff80254895632a2c4367fb@myhost> 排队等待投递的邮件)
$ mailq
> MSP Queue status...
/var/spool/mqueue-client is empty
Total requests: 0
MTA Queue status...
/var/spool/mqueue (1 request)
-----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient-----------
u04ALref018750* 184 Mon Jan 4 11:21 <[email protected]>
(Deferred: Connection timed out with mail.vtmail.com.)
<[email protected]>
Total requests: 1
mail.err 日志文件是空的。
我该如何找出问题?这种情况经常发生。
答案1
日志条目
stat=Sent ( <remote-id> Queued mail for delivery)
表示远程服务器已接受该邮件。从您的 SMTP 服务器的角度来看,该邮件已送达。现在,该邮件正处于通往收件人收件箱的下一跳。
此后发生的事情不再是您的邮件服务器的责任,您也无法轻松地从您的终端调试,即使可以调试。但通常情况下,邮件会经过垃圾邮件和防病毒过滤器等,然后最终进入收件人的收件箱、垃圾邮件文件夹或可能被默默丢弃。
让收件人检查他们的垃圾邮件文件夹,如果发现有垃圾邮件,请他们将邮件标题转发给您,这是一种方法。另请阅读典范问答防止电子邮件被标记为垃圾邮件和打击垃圾邮件,可以做什么我做?