邮件一过中继 DKIM 验签就失败?MailPlus 规范化设置从 relaxed/simple 手动切到 relaxed/relaxed 的三步
直发没事,一过中继就验签失败
DKIM 的原理不复杂:发送服务器用私钥给邮件签名,收件方到你的 DNS 里查公钥验签,验过了就证明内容没被中途改动。麻烦在于,公司外发的邮件常常要经过第三方中继或邮件网关——有些中继会在信上动手脚:加一页免责声明页脚、调整正文格式,都算「改动」。
MailPlus Server 默认的规范化设置是 relaxed/simple。这个组合对邮件头宽容、对正文严格:中继一旦动了正文,签名与内容对不上,收件方验签直接失败。这就是「直发进收件箱、过中继进不来」的典型成因。
三步切换规范化设置
官方给出的通路是手动编辑配置模板:
第一步,编辑模板文件
找到这台 NAS 上的这个文件:
/var/packages/MailPlus-Server/target/etc/template/opendkim.template
第二步,改 Canonicalization 一行
在文件里找到:
Canonicalization relaxed/simple
把它改为:
Canonicalization relaxed/relaxed
前半段管邮件头、后半段管正文——正文从严格比对切到宽容比对,中继的小改动不再一票否决。
第三步,重启 DKIM 签名服务
进 MailPlus Server > 域 > 高级,重启 DKIM 签名服务,改动即告生效。改完建议从外部邮箱发一封测试信回来,确认签名状态正常。
这条路的边界要认清
官方在文档里说得很直白:这是针对第三方中继行为的变通办法,外部中继对邮件内容所做的更改,厂商无法提供额外支持。换句话说——
- relaxed/relaxed 提高的是「对改动的容忍度」,不是修复了谁的问题;
- 中继若对正文做大改(重排 MIME 结构、转码),宽松模式也可能救不回来;
- 治本的两条路始终是:让中继不要改内容,或让这批邮件绕开中继直发。
小结
- 症状:直发验签正常,过中继必失败,多因中继改动正文撞上 simple 严格比对;
- 三步:编辑 opendkim.template,把 Canonicalization 从 relaxed/simple 改为 relaxed/relaxed,再到域高级页重启 DKIM 签名服务;
- 边界:官方定位为变通方法,外部中继的内容更改不在支持范围,治本仍是让中继不改内容或直发。
诚鑫致达科技切换这类签名参数后的验收习惯是外发三连:给三个不同域的邮箱各发一封测试信,第二天逐个回访——三封都进了收件箱而不是垃圾箱,参数才算动对了。