如何使用日志文件和 doveadm 追踪/查找“丢失”的电子邮件?

如何使用日志文件和 doveadm 追踪/查找“丢失”的电子邮件?

我的一位客户丢失了一些电子邮件,我试图找出发生了什么,但我的知识有限。我问过服务器支持人员,但他们说一切正常,只附上了日志(我看不懂 > ♻️

答案1

用户有时会抱怨他们丢失了电子邮件。问题几乎总是由用户的某个电子邮件客户端意外造成的。尤其是意外地将“POP3 客户端”配置到新设备上,该客户端会在下载邮件后将其删除。——Dovecot 手册:邮件调试

您可能没有记录单个 IMAP 操作,因此可能无法跟踪哪个用户删除了邮件。但是,如果您发现丢失的邮件都超过 X 天,并且有访问权限的某个用户最近设置了带有丢弃旧邮件功能的邮件客户端,那么就可以快速找出嫌疑人。

我如何追踪电子邮件的去向?

你做到了,你只需要继续,因为至少有不同的标识符。

  1. 您已[email protected]在 Message-ID 标头中得到指示,这是发送软件附加的内容。
  2. Postfix 首先收到此信息,并将其跟踪为4525915E4AA
  3. Postfix 将其交给 Amavis,Amavis 可以转发,然后将其交还给 Postfix。现在 Postfix 将其跟踪为A3CC315E4B5
  4. Postfix 肯定已经确定收件人是本地人,因此它将其交给 IMAP 服务器 Dovecot。Dovecot 报告说它已完全收到该邮件,并承担不会丢失该邮件的责任,并将跟踪该邮件uLYULOwuYmNdIAAAPVEKtg

直到你引用的部分,信息还没有丢失。继续跟踪链条直到您到达报告的传输末尾。Dovecot 可能尝试存储该消息,也可能没有,也可能在用户请求后丢失或故意删除该消息。

我怀疑如果你在日志中搜索标识符 4,你会发现一个日志条目,其中 Dovecot 报告了消息存储在哪个用户和邮箱(命名空间/子文件夹),以及消息 ID 标头的另一个引用。

可以使用 doveadm 搜索电子邮件吗?

如果 Dovecot 仍保留您的消息,它将能够找到它。如果邮箱超过几百 GB,可能需要将搜索限制在合理的子集内,具体细节请参见doveadm 搜索doveadm 搜索查询手册。例如:

doveadm fetch -u [email protected] 'hdr.date mailbox' HEADER Message-ID '[email protected]'
# if that is appropriate and properly setup, you might even search all users:
doveadm fetch -A 'hdr.date mailbox' HEADER Message-ID '[email protected]'

如果邮件已送达,然后丢失,则邮件存储类型和具有权限的用户可能与进一步查询相关。对于有关邮箱可能已损坏或无法访问的方式的潜在后续问题,请务必包含相关配置,例如命令转储doveconf -n

相关内容