如何检索未送达的 Postfix 邮件?

如何检索未送达的 Postfix 邮件?

我最近发现,所有原本要通过 Ubuntu 服务器上的 postfix 发送到我的特定地址的电子邮件都被第三方电子邮件提供商拒绝了。

所以我大约有 6 个月没有收到电子邮件了(这些电子邮件来自我网站上的提交表格)。

我已经检查过,Postfix 邮件队列是空的。

这是电子邮件未送达时的示例日志条目(xxx 表示隐私)。

Nov 14 21:17:51 ip-xxx-xxx-xxx-xxx postfix/smtp[2932654]: D6F393EA37: to=<[email protected]>, relay=mx2.privateemail.com[198.54.122.215]:25, delay=12, delays=0.02/0.01/7.2/5.1, dsn=5.1.8, status=bounced (host mx2.privateemail.com[198.54.122.215] said: 554 5.1.8 <[email protected]>: Sender address rejected: Domain not found (in reply to RCPT TO command))
Nov 14 21:17:51 ip-xxx-xxx-xxx-xxx postfix/cleanup[2932652]: 44F5E3EA38: message-id=<20211114211751.44F5E3EA38@ip-xxx-xxx-xxx-xxx.us-east-2.compute.internal>
Nov 14 21:17:51 ip-xxx-xxx-xxx-xxx postfix/bounce[2932655]: D6F393EA37: sender non-delivery notification: 44F5E3EA38
Nov 14 21:17:51 ip-xxx-xxx-xxx-xxx postfix/qmgr[4079]: 44F5E3EA38: from=<>, size=3166, nrcpt=1 (queue active)
Nov 14 21:17:51 ip-xxx-xxx-xxx-xxx postfix/qmgr[4079]: D6F393EA37: removed
Nov 14 21:17:51 ip-xxx-xxx-xxx-xxx postfix/local[2932656]: 44F5E3EA38: to=<[email protected]>, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Nov 14 21:17:51 ip-xxx-xxx-xxx-xxx postfix/qmgr[4079]: 44F5E3EA38: removed

有什么方法可以检索过去 6 个月内未送达的电子邮件吗?

答案1

原则上,如果你有邮件队列,你可以通过以下方式找到这些邮件的列表

postqueue -p

它会告诉你 ID。然后,对于每个 ID,你可以使用以下命令打印该电子邮件的完整正文:

postcat -q <ID>

如果你决定删除一条消息,

postsuper -d <ID>

然而,就您而言,队列中没有任何内容,因此您无法从任何地方获取邮件,除非它在发送给 Postfix 之前已保存在某处。

您的邮件被拒绝554,代码为 5xx 表示不可恢复的错误。这种错误会让 Postfix 认为邮件不值得保留,因为后续尝试都无法投递。顺便说一句,“找不到域名”不应该是“不可恢复的”(因为这可能是接收方 DNS 的问题),但在这种情况下,您似乎拥有“私有”DNS 名称,这可以解释硬失败的原因。

相关内容