DKIM - 邮件正文哈希无法验证 - 由Discourse发送的电子邮件

我在我的一个托管站点 (pair.com) 使用其自动化系统创建了一个 DKIM 记录。我在我的 DigitalOcean DNS 服务器上创建了一个包含 DKIM 主机和密钥的 TXT 记录。

如果我通过 Thunderbird 发送电子邮件,DKIM 会通过。当 Discourse 发送电子邮件时,使用完全相同的服务器/账户信息,我收到:

dkim=neutral (body hash did not verify) header.i=@knysnayachtowners.org header.s=pair-202409020848 header.b=UW+zWBx8;

我哪里做错了?

DKIM 签名在发送邮件服务器上进行,即 Discourse 已将其交给它配置使用的 SMTP 服务器之后。

如果您看到哈希不匹配,则表明电子邮件在签名后被修改,或者密钥对不匹配。

如果您确定在 Thunderbird 和 Discourse 中使用了相同的详细信息(您是否已重新启动容器以确保它正在使用 app.yml 中的详细信息?),我将很惊讶它是否使用了不同的密钥进行签名或使用了不同的选择器,因此如果密钥对不匹配,我预计会看到相同的结果。

会不会是从地址不同,而您的邮件提供商根据该地址进行了不同的签名?

本质上,在邮件离开 Discourse 后发生了某些事情。如果您找不到明显的原因(例如发件人地址),您可能需要联系您的邮件提供商以了解发生了什么。

1 个赞

如建议,您需要将“通知电子邮件”更改为您配置为发送邮件的域中的地址。

1 个赞

我运行了一系列额外的测试,发现问题在于我测试时使用的收件人地址会将邮件转发到 Gmail。如果我直接将邮件发送到 Gmail,哈希值会通过。

然而,这仍然让我感到困惑,因为我查看了发送到该地址的其他邮件的标题,DKIM 哈希值都通过了。为什么这次会不同呢?

Gmail 无法识别 DKIM。Google 对此非常严格。主要原因是发送服务器并非管理员所认为的那样。