PHPMailer 和 Content-MD5

PHPMailer and Content-MD5

设置 content-md5 header 的正确标记是什么,尤其是在使用多部分/mime 编码的邮件时?

$mail->addCustomHeader('Content-MD5', base64_encode(md5($body)));

包含邮件的 body-part 是否足够,还是我必须包含主题/附件/...?

不,这样不行。 Content-MD5 (RFC1864) 只能应用于 single-item MIME 元素,例如 text/html,而不能应用于整个多部分邮件。 PHPMailer 仅在消息级别添加自定义 headers(使用 addCustomHeader 时),因此无法为单个部分计算此值。您需要重写 createBody 函数以添加 header,这将非常繁琐。

总体上更好的选择是使用 DKIM,它提供了相同类型的 anti-tampering 能力,但它已经存在并且可以工作并且得到了 ISP 的广泛支持。

在 DKIM 上使用 Content-MD5 有什么特殊原因吗?