如何排查邮件发送问题?(部分收件人收不到部分邮件)

一些 用户报告称,他们没有收到我们 Discourse 实例发送的某些 邮件。我们使用的是“mailing list mode”(邮件列表模式)。我尝试分析了一个具体的案例:在一个包含 117 名用户的群组中,大约有 4 名用户报告未收到某封特定邮件,而其他用户则正常收到了该邮件。受影响的这些用户确实收到了同一类别下的其他邮件(包括在受影响邮件之前和之后发送的)。查看管理面板 > 邮件协议(email protocol),我可以按受影响用户的电子邮件地址进行筛选,但在 sent(已发送)、skipped(已跳过)或 bounced(退信)标签页中,均未找到该特定帖子/邮件的相关记录。

我该如何进一步调试以找出根本原因?

可能相关(已开放/未找到原因):Weird behaviour for sent emails

您使用的是托管服务吗?请与您的托管商联系。

如果是自托管,您的邮件发送服务商是谁?您查看过他们的日志吗?

自托管。如果邮件已转发到我们的邮件服务提供商(即 Strato),那么按照邮件协议,我不应该在已发送中看到这封邮件吗?

是的,确实如此。

我使用了一个编程代理来总结在邮件列表模式下邮件何时会被抑制:

- 用户已静音该主题、分类或其标签之一。
- 用户已静音或忽略该作者。
- 用户无法访问该帖子——例如,它位于受限分类中。
- 账户处于非活动、被禁言、被暂停或等待必需审批的状态。
- 用户选择排除自己的帖子。
- 帖子或主题在投递前已被删除。
- 之前的投递失败导致用户的退信分数超过了配置的阈值。

不过,你也可以自己查看代码:

谢谢,作为管理员,我模拟了该用户,并将逐一检查以下情况以调试问题:

  • 总体情况:用户设置中已激活邮件列表模式(通过全局设置)
  • 该主题未被屏蔽(在主题视图中)
  • 未屏蔽任何分类(在用户设置中)
  • 该主题未使用任何标签(在主题视图中)
  • 未屏蔽任何用户(在用户设置中)
  • 用户可以访问该帖子
  • 账户并非处于非活动、静默、暂停状态,也未在等待必需批准
  • 该帖子来自其他用户
  • 该帖子(及主题)未被删除
  • 用户在同一天收到了发送至另一主题的邮件,因此退信分数似乎并未生效。

那么还可能是其他什么原因?我该如何进一步调试此问题?我有点不知所措… :-/