我在 VPS 上运行邮件服务器 (postfix),该服务器设置为将发送到我的私有域中地址的所有邮件转发到 GMail 地址。我的邮件服务器设置了 SPF、SRS、DKIM 和 DMARC,并且对大多数邮件都运行良好,即配备 SPF、DKIM 和 DMARC 的转发邮件会发送到我的 GMail 收件箱中,GMail 服务器会报告它们已通过 SPF、DKIM 和 DMARC。
但是,有些发件人只使用 SPF 和 DMARC 发送邮件,而不使用 DKIM,例如 deutschepost.de。这个特定的发件人还实施了 DMARC 拒绝策略,这会导致问题:当我的服务器转发邮件时,SRS 会重写其信封发件人,这样当邮件到达 GMail 时,SPF 仍然会通过。但是,重写的信封发件人会导致 DMARC 的 SPF 对齐检查失败,从而导致邮件被 GMail 拒绝。
据我了解这个解释,这种行为是可以预料到的。但是我(即转发者)这边有没有办法处理它呢?
TL;DR 如何使用 SPF 和 DMARC 转发邮件但不使用 DKIM 而不破坏 DMARC?
编辑:根据 Jacob 的评论,一个选项是将发件人标头重写为我的域。是否可以使用 Postfix 仅对具有 SPF 和 DMARC 但没有 DKIM 的邮件执行此操作?因为那些具有 DKIM 的邮件在重写后将无法通过对齐检查。
答案1
如果没有 DKIM,您可以使用“回复”标头,以便回复发送给原始发件人。
转发消息有两种方式。正常的方式是用户转发电子邮件的方法是创建一封包含旧邮件文本(以及任何附件)的新邮件。通常的方式是服务器转发电子邮件是通过中继消息来实现的 - 因此添加任何标题并将消息发送到另一台服务器。
DMARC 是专门为阻止被欺骗的邮件而设计的。如果您将邮件服务器配置为发送看似被欺骗的邮件,那么 DMARC 可以帮助我们识别它。这就是它的用途。
所以你真正想要做的是发送一个新消息发送给来自您的域的用户(因此适用您自己的 SPF 和 DKIM 策略)但将“回复”设置为原始发件人。
我不使用 Postfix,但对我来说这听起来像是一个分发列表(尽管只有一个成员)。