DKIM签名配置了,但测试或收件方报告 DKIM 'body hash did not verify' / 签名验证失败,怎么修?

75 DKIM签名配置了,但测试或收件方报告 DKIM "body hash did not verify" / 签名验证失败,怎么修?
body hash did not verify 是什么

DKIM签名包含对邮件正文的哈希值。收件方重新计算哈希,发现不匹配,说明正文在签名被添加后又被修改过。

常见原因(按概率排序)

1. 自动转发/邮件网关:中间服务器修改了正文(加footer/免责声明/编码转换)——最常见
2. 邮件列表/Mailman:在正文追加订阅信息和链接
3. MIME编码转换:如 Quoted-Printable → Base64
4. 反病毒/防泄露系统:在签名后追加安全标记或修改正文

修复

确保 DKIM 签名在邮件处理链的最后一步生成(所有内容修改完成之后)。
使用宽松规范化(relaxed/relaxed而非 simple/simple),容忍空白和编码差异。
在线测试:dkimvalidator.commail-tester.com

参考:RFC 6376 DKIM Signatures §3.4 Body Length Limits · RFC 6376 §5.3 Relaxed Canonicalization · OpenDKIM 文档