由于我的邮件提供商的设置,我需要在本地对我的邮件进行 DKIM 签名。我通过将在 mutt 中编写的邮件通过简单的 Python 脚本传输到 msmtp 来实现此目的。
这些邮件将因正文哈希错误而无法通过 DKIM 检查。但如果我向自己发送(未签名的)邮件并使用我的脚本对收到的邮件进行签名,它将通过检查。
消息之间唯一可见的区别是 DKIM-Signature 和 Content-Length 标头的顺序:
# Message received and then signed locally
Content-Length: 76
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; [...]
# Message signed and sent
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; [...]
Content-Length: 76
msmtp 是否会对邮件进行任何操作,从而改变正文,导致正文哈希无效?任何帮助都将不胜感激。
谢谢,Jan
答案1
问题解决:我的邮件提供商的 MTA 弄乱了邮件正文;使用我自己的 MTA 可以得到有效的 DKIM 签名。