发送 Postfix 电子邮件时 DKIM 失败

发送 Postfix 电子邮件时 DKIM 失败

我设置了一个 postfix/dovecot 服务器。我的 ISP 封锁了出站端口 25,因此我使用 SMTP 中继 (mailjet)。

当我向 Gmail 发送电子邮件时,它最终被归入“促销”类别,实际上是垃圾邮件文件夹。我该如何解决这个问题?

仔细检查显示谷歌报告“DKIM:域名 example.com 为‘FAIL’”。

在本文中,我们将应用这些替换:

  • IP 被替换为XX.YY.ZZ.AA
  • 域名被替换为example.com
  • 任意长字符串将被替换为...

SMTP 中继建议设置 SPF 和 DKIM。他们提供了一些字符串以添加到 DNS TXT 记录中,我已经这样做了。Mailjet 识别出 SPF 和 DKIM 记录看起来不错。

字符串如下所示:

example.com                        TXT    v=spf1 include:spf.mailjet.com ?all
mailjet._domainkey.example.com     TXT    k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4...

dig example.com txt节目

$ dig example.com
...
;; ANSWER SECTION
example.com.   21600    IN   TXT   "v=spf1 include:spf.mailjet.com ?all"

这是我认为电子邮件标题中有趣的部分

ARC-Authentication-Results: i=1; mx.google.com;
       dkim=neutral (body hash did not verify) [email protected] header.s=mailjet header.b="mF/BgIdk";
       dkim=neutral (body hash did not verify) [email protected] header.s=mailjet header.b=YabQjQKu;
       spf=pass (google.com: domain of [email protected] designates XX.YY.ZZ.AA as permitted sender) [email protected]
Return-Path: <[email protected]>
Received: from o137.p9.mailjet.com (o137.p9.mailjet.com. [XX.YY.ZZ.AA])
Received-SPF: pass (google.com: domain of [email protected] designates XX.YY.ZZ.AA as permitted sender) client-ip=XX.YY.ZZ.AA;
Authentication-Results: mx.google.com;
       dkim=neutral (body hash did not verify) [email protected] header.s=mailjet header.b="mF/BgIdk";
       dkim=neutral (body hash did not verify) [email protected] header.s=mailjet header.b=YabQjQKu;
       spf=pass (google.com: domain of [email protected] designates XX.YY.ZZ.AA as permitted sender) [email protected]
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; q=dns/txt;
  d=example.com; [email protected]; s=mailjet;
  ...
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; q=dns/txt;
  d=bnc3.mailjet.com; s=mailjet;
  ...
Return-Path: <[email protected]>
From: Stewart <[email protected]>

我一直在关注一个奇妙的设置指南。有一个关于创建 DKIM/SPF 记录,但我忽略了这一点,因为我遵循了 SMTP 中继的建议。我应该遵循本指南并为我的域和我的 SMTP 中继添加 SPF/DKIM 记录,还是只应为我的 SMTP 中继添加记录?也就是说,这样做有意义吗?default._domainkey.example.com mailjet._domainkey.example.com记录?

答案1

问题解决了。这与我的 SMTP 中继或 Postfix 服务器无关。我可能是世界上唯一遇到此问题的人,但万一不是,我希望其他人可以从这个答案中受益。

我的电子邮件在电子邮件客户端中使用 PGP 签名进行签名。不知何故附加 PGP 签名破坏了 DKIM 对正文进行哈希处理的方式。如果我没有在电子邮件客户端中对我的电子邮件进行签名,则 DKIM 是有效的。

我不知道这是否特定于我的设置,但我已经向 SMTP 中继提交了错误报告。

相关内容