为什么我的域发送给 google 群组的消息不重写其标头以便 DMARC 可以通过?

lor*_*ron 9 email gmail spf dmarc smtp-headers

每当我的域向另一个域上的 Google 群组发送消息时,DMARC 对齐都会失败。这适用于所有我批准的发件人,即使在我的域中使用 Gmail。好像是因为Return-Path(Envelope From)头被接收组的退回地址代替了,但是From头仍然是我的域,这是不正确的。

例如,我将邮件从我域中的 Gmail chris@mydomain.com 发送到您域中的群组 your-group@yourdomain.com。如果您查看收到的消息的标题,您会看到:

坏的

Return-Path: <your-group+bncBCA5XFGRYQLCBEHHVS5AKGQED3J2I7I@yourdomain.com>
Authentication-Results: mx.google.com;
   dkim=pass header.i=@yourdomain.com;
   spf=pass (google.com: domain of your-group+bncBCA5XFGRYQLCBEHHVS5AKGQED3J2I7I@yourdomain.com designates 2607:f8b0:400d:c04::246 as permitted sender)
smtp.mailfrom=your-group+bncBCA5XFGRYQLCBEHHVS5AKGQED3J2I7I@yourdomain.com;
   dmarc=fail (p=NONE dis=NONE) header.from=mydomain.com
From: Chris <chris@mydomain.com>

X-Original-Sender: chris@mydomain.com
X-Original-Authentication-Results: mx.google.com;       dkim=pass
 header.i=@mydomain.com;       spf=pass (google.com: domain of chris@mydomain.com
 designates 2607:f8b0:400c:c05::233 as permitted sender)
smtp.mailfrom=chris@mydomain.com;
       dmarc=pass (p=NONE dis=NONE) header.from=mydomain.com
Run Code Online (Sandbox Code Playgroud)

由于 From 域 (mydomain) 与 DKIM 和 SPF 域 (yourdomain) 之间的对齐不当,DMARC 失败。但是,当您(一个正确配置的 GApps 用户)从 Gmail 向 mydomain 中的群组发送邮件时,标头是不同的。

好的

Return-Path: <my-group+bncBCGJ3NF22YBRBTXIVS1RKGQEIWR5E6Q@mydomain.com>
Authentication-Results: mx.google.com;
       dkim=pass header.i=@mydomain.com;
       spf=pass (google.com: domain of my-group+bncBCGJ3NF22YBRBTXIVS1RKGQEIWR5E6Q@mydomain.com designates 2607:f8b0:4001:c0b::247 as permitted sender) smtp.mailfrom=my-group+bncBCGJ3NF22YBRBTXIVS1RKGQEIWR5E6Q@mydomain.com;
   dmarc=pass (p=NONE dis=NONE) header.from=mydomain.com
From: "'You' via my-group" <my-group@ mydomain.com>
Run Code Online (Sandbox Code Playgroud)

请注意 From 标头的不同形式 - 原始发件人已被我自己的组替换。还有一对如上的 X-Original 标题具有相同的形式(只是颠倒了),所以我不粘贴它们。

所以问题是,如何配置我的域、gapps、dns、mx 或其他任何内容,以便接收我的消息的 Google 网上论坛将正确地将 From 标头替换为“via you-group@yourdomain.com”?

从我的域到其他域的用户的邮件工作正常 - DMARC 通过,因为 SPF 和 DKIM 很好,并且返回路径仍然显示@mydomain。我已经阅读了关于为什么“通过你组”是必要的文章 - 我对此没有意见。我试图弄清楚为什么我发给群组的消息没有得到这样的对待。

似乎类似于:How to prevent email from my domain through mailing lists 由于DMARC而被拒绝 不同,因为谷歌组肯定与DMARC兼容 - 其他人没有这个问题。

更新: 我发现这篇文章说 google 群组仅在 DMARC 政策严格(p=reject)时才重写发件人。这似乎是一个糟糕的主意,因为从 p=none 开始的全部目的是让您确信您的邮件会在您启动政策时被送达,但如果为真,那么它可以解释我的问题。有人可以确认吗? http://www.spamresource.com/2014/04/google-groups-rewriting-from-addresses.html

lor*_*ron 9

我终于从谷歌那里得到了这个回应。我很高兴找到了解这个问题的人,但不幸的是,谷歌似乎坚持他们对 DMARC 指令的错误处理。

当原始发件人(在本例中为您)的 DMARC 政策设置为拒绝或隔离时,Google 网上论坛只会重写发件人:标头。

使用 DMARC/p=none,发送到组时不会重写 DKIM,但是由于 DMARC 设置为“none”,因此从传递和垃圾邮件检测的角度来看,组会破坏 DKIM 并不重要 -它仍然会正确交付。不幸的是,如果您正在监视部署,它确实会让人感到困惑。

为了查看正确的行为,您可以切换到 p=quarantine 并监控交付。如果还有什么我可以帮助你的,请告诉我,我很乐意跟进。