我在我的一个域名上使用 101domain 作为托管服务提供商。
我知道他们的声誉不太好,但由于我有两个网站需要管理,其中一个有多个 ccTLDS 域名,所以我想尝试一下他们的托管服务,除了多个注册人服务之外,
我迁移了所有域名,他们确实提供了良好的服务。无论如何,101domain 不使用 DKIM 机制,这导致我的 DMARC 策略失败。
是否可以设置 DKIM 记录,说明邮件服务器未签署已发送的电子邮件?
我的记录示例如下:
example.com SPF v=spf1 +a +mx ip4:x.x.x.x/16 include:relay.mailchannels.net -all
example.com TXT v=spf1 +a +mx ip4:x.x.x.x/16 include:relay.mailchannels.net -all
_adsp._domainkey.example.com TXT dkim=unknown;
_domainkey.example.com TXT o=~
_dmarc.example.com TXT v=DMARC1; p=reject; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; adkim=r; aspf=s;
PD:101domain 使用 mail channels.net 服务作为发送邮件网关。
答案1
您可以删除所有与 DKIM 相关的记录。DMARC
不要求您同时使用 SPF 和 DKIM。验证 DMARC 时,仅要求邮件通过 DKIM或者SPF 检查,而不是两者同时进行。
当然,使用 DKIM 也有很多好处,但如果您没有,只需删除所有记录。
如果 DMARC 失败,则 SPF 检查或 DMARC 检查存在问题,它会检查“邮件发件人”和“显示发件人”标头,并且存在不匹配的情况。
DMARC.org 有一篇很好的文章关于不使用 DKIM 的 DMARC
答案2
非常感谢 MadHatter 和 Henrik Stanley Mortensen 的帮助,但是经过一些研究和测试,我发现当您设置 DKIM 记录以撤销公钥时,似乎策略变得中立,使得未经签名的电子邮件通过 DKIM 检查有效。
default._domainkey.example.com TXT k=rsa; p=
DMARC 的检查将取决于您使用的策略。
_dmarc.example.com TXT v=DMARC1; p=reject; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; adkim=s; aspf=s;
如果您将 DKIM 和 SPF 都设置为严格模式,那么只要其中一项检查失败,电子邮件就会被拒绝。
_dmarc.example.com TXT v=DMARC1; p=reject; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; adkim=r; aspf=s;
另一方面,如果您设置 DKIM 宽松模式和 SPF 严格模式,那么如果 DKIM 失败而 SPF 通过,电子邮件将通过,但如果 DKIM 通过而 SPF 失败,电子邮件将被拒绝。
_dmarc.example.com TXT v=DMARC1; p=reject; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; adkim=r; aspf=r;
此外,如果您将 DKIM 和 SPF 都设置为放宽模式,则与将策略设置为 NONE 的结果相同。