我的一个网站从各种来源发送电子邮件,包括:
- 邮件黑猩猩
- 山魈
- 邮筒
- 亚马逊 SES
- 从服务器本身
我们已经为所有源正确配置了 SPF 和 DKIM 设置,因此我们决定也添加 DMARC,同时我们将 ?all 更改为 -all。
我们所有的电子邮件都顺利通过,但我们注意到我们的 Mailchimp 电子邮件“无法使用 SPF”,因此没有完全通过。
大多数电子邮件客户端/帐户显示 DMARC 已通过,但是 DMARCian 和一些电子邮件客户端抛出DMARC Fail-alignment
例如:
然而, DMARC.io确实说了以下内容:
SPF:SPF 是不可能的,因为 MailChimp 在退回地址中使用自己的域。不过,他们的域身份验证验证工具需要包含 Mailchimp。要在不必包含 Mailchimp 服务器的情况下解决此问题,请尝试在 SPF 记录中仅包含“ip4:205.201.128.0/20 ip4:198.2.128.0/18 ip4:148.105.8.0/21”。
所以,我将这些添加到我的 SPF 中,但它仍然显示:
以下所有 IP 都包含在这些 CIDR 符号中,所以我无法弄清楚为什么 SPF 仍然与 SPF 不一致,但它修复了 DKIM ......
198.2.185.161
198.2.185.245
198.2.141.4
198.2.175.233
198.2.185.245
198.2.142.122
我确实在 stackoverflow 上找到了以下内容:https ://stackoverflow.com/a/50471866/2487602但是这似乎有点错误,因为反弹服务器几乎总是不同的。他们有数百台服务器。
我的 SPF 看起来像:
v=spf1 +a +mx +ip4:94.237.30.75 +ip4:94.237.30.85 +ip4:94.237.30.86 +ip4:94.237.30.87 +ip4:54.77.177.67 +ip4:34.246.233.211 +ip4:52.18.62.128 +ip4:34.241.119.225 +ip4:205.201.128.0/20 +ip4:198.2.128.0/18 +ip4:148.105.8.0/21 include:servers.mcsv.net include:spf.mandrillapp.com include:mailgun.org include:amazonses.com -all
我做错了什么/我可以改进以使 SPF 保持一致吗?
附带说明一下,我假设前 4 个 IP 我可以只使用:+ip4:94.237.30.75/28
这将包括这 4 个 IP 以及 14 个左右的其他 IP,这并没有那么危险,尤其是当他们没有 DKIM 和结果 DMARC 通过了吗?为了让它更安全一点,我可以将这 4 条记录减少到+ip4:94.237.30.75 +ip4:94.237.30.85/30
只包含 1 个我们不使用的 IP。
我也想通过 EC2 发送电子邮件,而不是通过 SES 发送某些电子邮件(可能会取代 Mailgun/SES),但是当我们从这些服务器发送电子邮件时,它们会因为没有反向 DNS 而被发送到垃圾邮件。
我想,解决方法是请求亚马逊为我们使用的 3 个 EC2 实例设置 PTR 记录?
我之前确实请求过其中一个,但我不确定它是否应该指向我的主网站的 IP 或它发送电子邮件的服务器的 IP...
至于 SES,即使添加了 SPF 包含和 DKIM 记录,我们的 SPF 记录显示“中性”而不是“通过”,例如以下来自 SES/EC2 的“测试电子邮件”功能
SPF: NEUTRAL with IP 54.240.7.46
所以回顾一下...
- 我们如何使 Mailchimp 完全传递 SPF 以便 DMARC 对齐
- 我们如何正确设置反向 dns 的 PTR 记录,子域应该指向它发送电子邮件的服务器还是主域的服务器?
- 如何让 Amazon SES 抛出 SPF Pass,而不是 SPF Neutral?