有没有方法可以使用dig
或查找域的 DKIM 和 DMARC 记录nslookup
?
我尝试做了以下事情:
dig somedomain.org any
返回许多记录,但不是已知的 DKIM 和 DMARC 文本记录。
nslookup -type=txt somedomain.org
返回除 DKIM 和 DMARC 记录之外的所有已知文本记录。
答案1
要查询 DMARC 的 TXT 记录,您可以使用:
dig TXT _dmarc.example.org
要查询 DKIM 的特定记录,您需要知道选择器前缀。您可以在s
电子邮件的 DKIM 签名值中找到它。
例如:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.org;
s=google; t=1615461277;
[…]
然后你可以将其作为 TXT 进行查询:
dig TXT google._domainkey.example.org
答案2
对于 DKIM 记录,如果您收到了来自该域的 DKIM 签名的电子邮件,请查看 DKIM-Signature 标题行。
来自规格:
所有 DKIM 密钥都存储在名为 _domainkey 的子域中。如果 DKIM-Signature 字段的“d=”标签为 example.com,“s=”标签为 foo.bar,则 DNS 查询将针对 foo.bar._domainkey.example.com。
因此在这个例子中,您可以运行:
dig TXT foo.bar._domainkey.example.com
感谢 andol,他的评论让我找到了这个解决方案。
答案3
你应该使用+简短使用 dig 仅获取 DMARC 记录。
dig +short TXT _dmarc.domain.com
答案4
您可以直接查询registry.prove.email DKIM 注册表中的 API通过 POST 任何域,然后获取任何已知选择器和当前/历史 DKIM 密钥,大约 7,000 多个 DKIM 密钥!因此,您无需使用 dig 或 nslookup,而是使用 cURL API。您不需要知道选择器。