如何验证电子邮件是否已通过 postfix 成功发送?

如何验证电子邮件是否已通过 postfix 成功发送?

我每天都被要求验证我们的服务器是否成功发送了邮件(因为客户抱怨他将其发送给了 xy,而收件人却从未收到)。这很可能不是我们的错,而是收件人的邮件服务器丢弃/标记为垃圾邮件。所以我的问题是如何验证(如果可能的话)邮件是否由我们的 postfix 发送出去?

如果我通过 mail.log.* 文件进行 grep,我会得到如下条目:

Sep 14 06:27:10 mailhost postfix/qmgr[21603]: 14B40C65A1: from=<[email protected]>, size=1372, nrcpt=1 (queue active)
Sep 14 06:27:10 mailhost postfix/qmgr[21603]: 11673C5FDA: from=<[email protected]>, size=1469, nrcpt=1 (queue active)

这些信息非常有价值。由此我所看到的是[电子邮件保护]于 6:27 发送了一封电子邮件给某人并且它已被邮件系统排队(并不是说它被发送出去以及之后发生了什么)。

是否可以使用 postfix 记录这些事件?即使需要增加错误日志,我也需要这些信息。

谢谢

答案1

默认情况下,Postfix 为其处理的一封外发邮件创建至少两行日志:接收部分和发送部分。

Sep 15 10:30:51 mail postfix/qmgr[1499]: F1FBEC0666: from=<[email protected]>, size=251, nrcpt=1 (queue active)
Sep 15 10:30:51 mail postfix/smtp[25011]: F1FBEC0666: to=<remoteuser@remotedomain>, relay=xxxxxx[yyyyyyy]:25, delay=0.83, delays=0.15/0.01/0.27/0.39, dsn=2.0.0, status=sent (250 Requested mail action okay, completed: id=xxxxxxxxxxx) 
Sep 15 10:30:51 mail postfix/qmgr[1499]: F1FBEC0666: removed

我猜你搜索的是本地用户,而不是远程用户,所以没看到第二行。grep如果你真的不知道自己在找什么,more或者less那里更有用,请不要使用。

答案2

您的邮件用户还可以请求所谓的快递状态通知在他的 MUA 中。它是一种退回邮件,只不过所包含的邮件包含成功消息,如下例所示:

Your message was successfully delivered to the destination(s)
listed below. If the message was delivered to mailbox you will
receive no further notifications. Otherwise you may still receive
notifications of mail delivery errors from other systems.

                   The mail system

<[email protected]>: delivery via mx.example.org[199.4.28.26]:25: 250
    Requested mail action okay, completed: id=2LMKVd-1Y2eA52oJa-70aFI9

该报告还包含消息何时到达哪个服务器的详细信息。

在 Thunderbird 中,可以在撰写窗口中激活 DSN 请求,如下所示:选项 > 传递状态通知。

相关内容