MS Exchange修改入站邮件头及内容导致DKIM校验失败的问题求助
MS Exchange修改入站邮件头及内容导致DKIM校验失败的问题求助
大家好,我最近一直在尝试给公司的MS Exchange服务器配置入站邮件的DMARC,目前是用SpamAssassin in a Box来实现的。现在SPF查询部分已经正常工作了,但有一部分(不是全部)邮件的DKIM签名校验失败,直接进了垃圾邮箱——我怀疑是Exchange服务器修改了带DKIM签名的入站邮件体导致的。
今天同事搭建了一台单独的VPS来运行Exchange服务器,我们俩一起订阅了同一个线上新闻通讯做测试:他收到的邮件能正常通过DKIM校验,但我这边的就是失败。
对比两份邮件的头信息后,我发现了核心差异:
- 新闻通讯提供商all-elektronics.de发送的原始邮件头,在同事的Exchange服务器里到Date头就结束了(没有后续Exchange添加的头);但在我的Exchange服务器收到的邮件里,Date头之后被添加了额外的自定义头。
进一步排查后,我找到了两个直接导致DKIM校验失败的原因:
- 额外空行被移除:原始邮件在头和体之间有两个空行(同事那边的邮件能看到两个LF,也就是两个连续空行)。DKIM计算邮件体的规则是,从头之后的第一个空行后的第一行开始统计,但原始邮件里的第二个空行其实属于邮件体的一部分,会被纳入DKIM签名的计算范围。我的Exchange服务器在清理邮件时删掉了这个额外的空行,直接破坏了签名校验的一致性。
- 头字段大小写被篡改:Exchange还修改了
Content-Transfer-Encoding字段的大小写,这也触发了DKIM校验失败。
另外我已经开启了管道追踪,但发现原始的.eml文件本身也过不了DKIM签名校验,这说明问题并不是管道传输代理修改邮件头和体导致的。
有没有大佬能帮忙分析下这个问题?非常感谢!
备注:内容来源于stack exchange,提问作者Danny.Ando
相关产品推荐
相关产品推荐

