以编程方式检查 SPF、DKIM、DMARC

问题描述 投票:0回答:2

我有一个小程序,旨在检查这三个邮件记录是否存在,以防止欺骗。它似乎适用于特定领域,但它们似乎是根据具体情况设置的。 我的问题是有什么更可靠的方法来检查这些记录。 代码在这里: https://gist.github.com/amlwwalker/f445932d2fdb0f9f9a5e457c1894bf7d 例子:

Ryanair.com:

result:  v=spf1 a mx include:mail1.ryanair.com include:mail2.ryanair.com ~all
err:  lookup _dmarc.ryanair.com on 172.16.4.1:53: no such host
err:  lookup dkim._domainkey.ryanair.com on 172.16.4.1:53: no such host

瑞安航空电子邮件标题:

Authentication-Results: mx.google.com;
       dkim=pass [email protected];
       spf=pass (google.com: domain of [email protected] designates 209.235.250.215 as permitted sender) [email protected]
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=15below; d=care.ryanair.com; h=MIME-Version:From:To:Date:Subject:Message-ID:Content-Type; [email protected]; bh=MCorT6FfWGOmISJQSzdv4YLmKfg=; b=eXcQvy0odmzIAYy11bfM8OsoiXziin5E1hbWHvxlY6Q+KSpZr6/5OiUZ4EiNoCpNwFrciKB9Yj8G
   wmZOZwxQd3PW05+2bnu+8oKMPij/AyAEAi2tJ0TBEZxM7BOsno84L3eZ0BQFZvog6bW9UQE1fJCQ
   aoQYXPgsHV6dzWjmHYo=

所以对我来说,它看起来有 DKIM 和 SPF。但该代码未找到 DKIM 记录。

marvelapp.com

result:  v=spf1 include:mailgun.org include:spf.mandrillapp.com include:spf1 include:mail.zendesk.com include:spf.mail.intercom.io -all
err:  lookup _dmarc.marvelapp.com on 172.16.4.1:53: no such host
err:  lookup dkim._domainkey.marvelapp.com on 172.16.4.1:53: no such host

Marvelapp 电子邮件标题:

Received-SPF: pass (google.com: domain of [email protected] designates 31.193.196.244 as permitted sender) client-ip=31.193.196.244;
Authentication-Results: mx.google.com;
       dkim=pass [email protected];
       spf=pass (google.com: domain of [email protected] designates 31.193.196.244 as permitted sender) [email protected]

所以我不明白的是,为什么在某些情况下 dkim._domainkey.domain.TLD 是查找 dkim 密钥的正确方法,而有时显然不是(谷歌似乎找到了它,但如何找到?最好的方法是什么?查看 dkim 键吗?

我基本上希望该代码片段返回与 Gmail 中“显示原始内容”相同的结果

谢谢

go email-headers spf dkim dmarc
2个回答
2
投票

DKIM 选择器不一定称为

dkim
。在 Ryanair 示例中,选择器是相当随机的
15below
(来自 DKIM 签名标头中的
s=
项),因此您需要查找
15below._domainkey.ryanair.com


0
投票

如果您无权访问

s=
字段或选择器无法正常工作,您可以尝试在 registry.prove.email 上查找该站点,其中包含大约 900,000 个域/选择器对及其相应的公共钥匙。

© www.soinside.com 2019 - 2024. All rights reserved.