Google 退回电子邮件,错误 550-5.7.1 我们的系统检测到此邮件可能是未经请求的邮件

Google 退回电子邮件,错误 550-5.7.1 我们的系统检测到此邮件可能是未经请求的邮件

我的 Exim4 服务器中有一个转发配置,当它收到发送到特定地址的消息时,它会被转发到 Gmail 帐户。

Exim4 配置了有效的 DKIM 和 SPF 身份验证,并且转发过程中返回路径不会被修改。

这是我的服务器尝试转发消息时 Gmail 拒绝的错误:

550-5.7.1 我们的系统检测到此邮件可能是未经请求的邮件。为了减少发送到 Gmail 的垃圾邮件数量,此邮件已被屏蔽。请访问 https://support.google.com/mail/?p=UnsolicitedMessageError了解更多信息。

此错误发生在转发邮件时,并非所有邮件都失败,但只有少数邮件失败,并且不是来自单个地址或域,而是来自许多不同的发件人。如果我要求将同一封邮件直接发送到 gmail 地址(不进行服务器转发),邮件会毫无错误地送达。

我使用 Google 邮政管理工具进行了检查,但没有足够的数据来显示 IP 信誉或垃圾邮件率。

我检查了链接并遵循了邮件转发的指南,我认为我遵守了以下规则: https://support.google.com/mail/answer/175365

我已经测试过使用和不使用 SRS 的情况,不幸的是,它并没有改变错误。

使用 SRS返回路径已更改但 SPF 检查有效

Return-Path: <[email protected]>

无SRS返回路径未受影响,但 SPF 无效。

答案1

我无法给出明确的答案,但也许可以提供一些指导。

您写道,转发时不会修改返回路径。但是,如果您留下信封完整无缺。以下内容假设您至少不修改信封发件人

首先我们来看一下SPF:

如果没有采取特殊措施,Google 将这些邮件视为垃圾邮件也是可以理解的。SPF 的工作原理如下(过于简单):

当消息到达时,接收服务器提取伪装发件人域名来自信封地址(因为信封很容易伪造,所以是假装的),然后询问DNS 服务器该域的当前通信伙伴的 IP 地址是否被授权代表该域发送电子邮件。如果没有,则该邮件可能会被视为垃圾邮件。

这就是您的情况(没有 SRS)。原始信封发件人域的 DNS 服务器可能没有将您的 EXIM SMTP 服务器列入可以代表该域发送电子邮件的主机列表中。除非您控制该 DNS 服务器,否则您对此无能为力。

从理论上讲,SRS 可以缓解这个问题,但它也有自己的问题。主要问题是每一个参与传输相应消息的 SMTP 服务器必须正确处理相应的标头。

您曾描述过,在启用 SRS 的情况下,一切正常,但几天前突然停止了。我个人猜测,这是因为传输转发的邮件时需要使用额外的 SMTP 服务器,而该服务器无法正确处理 SRS。甚至可能会发生一些糟糕的事情您的 EXIM 服务器接收该消息。

只要您保留信封发件人地址,DKIM 就不会出现上述问题。

现在,我的第一个建议是从尽可能多的不同发件人域向 EXIM 服务器的特殊转发地址发送邮件。想知道全部转发的邮件中有 10% 被拒绝,或者只有少数被拒绝。结果可能提示问题所在。您可能希望为该测试启用 SRS。

您还应该检查消息已经具有哪些授权到达在您的 EXIM 服务器上发送到您的特殊地址。我对 EXIM 一无所知,所以我不能告诉你它是否支持检查SPF 或 DKIM 标头。但我可以肯定地说,这不是第一次有人在原始发件人的网站错误配置了 DKIM 或 SPF;在后一种情况下,SRS 当然不会有帮助。

至少在 SPF 的情况下,您可以自己检查情况,而无需重新配置 EXIM。

  • 首先,存储其中一条有问题的邮件(作为转发邮件的补充或替代)。在该邮件的标题中,您可以识别已将邮件发送到 EXIM 服务器的 SMTP 服务器的 IP 地址。澄清一下:如果邮件通过多个 SMTP 服务器,则将有多个Received:标题行;您需要指定最后的SMTP 服务器在发送邮件时直接连接到您的 EXIM 服务器。记下该服务器的 IP 地址。
  • 接下来,确定信封发件人域。这可能有点困难,因为 SMTP 服务器通常不会将信封数据添加到标题中(同样,EXIM 没有任何线索)。也就是说,电子邮件客户端软件无法显示该数据。但它应该在日志中。您确实需要从信封数据中获取发件人的域,而不是从正常的邮件标题中获取。
  • 接下来,使用host或等软件dig(或最终使用某些在线服务)检查信封发件人域的 DNS SPF 条目。检查步骤 1 中的 IP 地址是否在允许的服务器列表中。

接下来您可以测试的是完全关闭 SPF 和 DKIM,并在转发邮件之前过滤掉相应的标头。毕竟,根本不验证邮件可能比以一种让接收者认为邮件已被篡改的方式进行验证要好。当然,这只是为了获得进一步的见解而进行的测试。

最后,违反第二段的前提条件,你可以故意改变信封发件人(用您自己的电子邮件地址替换信封发件人,其中包含您控制的 DNS 条目的域部分)并关闭 SRS。这样,在转发邮件时,接收服务器将咨询你的用于 SPF 检查的 DNS 服务器。如果您已正确设置,SPF 就不会再出现问题。在这种情况下,您应该过滤掉指定原始信封发件人的标头(如上所述,它通常不在标头中,但我只知道 sendmail,因此您的情况可能会有所不同)。

但是,更改信封发件人时,您会遇到 DKIM 问题,因此在这种情况下您应该删除 DKIM 标头。

测试愉快,祝你好运。

PS:当您提供测试结果或更准确地解释是否更改信封时,我最终会更新答案并提供进一步的提示(如果可以的话)。

相关内容