我有一个小计划,旨在检查这三个邮件记录是否存在打击欺骗。它似乎在特定的领域工作,但他们似乎是在个案的基础上设置。 我的问题是什么更强大的方式来检查这些记录。 的代码是在这里: https://gist.github.com/amlwwalker/f445932d2fdb0f9f9a5e457c1894bf7d 例子:检查SPF,DKIM,DMARC编程
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中去“显示原始”确实
感谢
感谢您的回复。这是标准吗?例如,从一个电子邮件发件人,我可以看到有一个'd =',它包含存储'dkim'键的域。 ryanair示例的域名存储在'd ='字段中,您必须将'15below._domainkey.'添加到它。是否有一组标准的规则来查找存储密钥的域? – amlwwalker
是的 - 这是正确的[在这里的RFC(http://dkim.org/specs/rfc4871-dkimbase.html#dkim-sig-hdr)。如果你打算解析DKIM头文件,你真的**需要阅读规范! – Synchro