我有一个托管的 VPS,完全由托管公司管理。几个星期以来,他们一直无法弄清楚如何让 DKIM 为我的电子邮件工作,尽管 cPanel 的电子邮件身份验证部分显示 DKIM 已启用。然而,测试显示 DKIM 无法用于电子邮件。我通过发送电子邮件到[电子邮件保护]我得到了这个:
----------------------------------------------------------
DKIM check details:
----------------------------------------------------------
Result: fail (wrong body hash: expected 47DEQpj8HB***)
ID(s) verified:
Canonicalized Headers:
from:***
content-type:text/plain'0D''0A'
content-transfer-encoding:7bit'0D''0A'
subject:'0D''0A'
date:Sat,'20'10'20'Mar'20'2012'20'14:03:41'20'-0500'0D''0A'
to:[email protected]'0D''0A'
mime-version:1.0'20'(Apple'20'Message'20'framework'20'v1257)'0D''0A'
dkim-signature:v=1;'20'a=rsa-sha256;'20'c=relaxed/relaxed;'20'd=***.com;'20's=mail;'20'h=From:Content-Type:'20'Content-Transfer-Encoding:Subject:Date:Message-Id:To:'20'Mime-Version;'20'bh=frcCV1k9oG9oKj3dp***;'20'b=
托管支持人员表示他们生成了密钥,然后更新了我的 DNS,我在 cPanel 中的“高级 DNS”部分验证了这一点,但仍然失败并出现上述错误。我想我有 shell 访问权限,并且对管理服务器略知一二,那么我该如何尝试自己解决这个问题,或者至少帮助托管支持人员修复它?我非常感谢任何帮助或建议。
答案1
电子邮件签名后,某些内容正在修改其正文。
注意到错误“结果:失败(错误的主体哈希:预期 47DEQpj8HB***)”了吗?
这立即告诉你一些事情……
- 它会告诉您有一个签名。(因此您知道 DKIM 已启用)
- 它告诉您签名失败的原因。(正文不正确。)
DKIM 签名的生成过程包括对标头和正文进行单向加密哈希计算,然后使用 RSA 密钥对这些哈希进行数字签名。
该错误告诉您正文的哈希值与验证器看到的正文不一致。即,您的 DKIM 签名软件看到的电子邮件正文与验证器看到的(可能只有很小的差异)不同。找出原因*并修复它。这将是您的解决方案。
*您可能希望将验证者的正文报告与您认为已发送的内容进行比较。某些东西(可能是托管服务提供商端的过滤软件)会对正文内容进行一些更改。