9

我的一个网站从各种来源发送电子邮件,包括:

  • 邮件黑猩猩
  • 山魈
  • 邮筒
  • 亚马逊 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

所以回顾一下...

  1. 我们如何使 Mailchimp 完全传递 SPF 以便 DMARC 对齐
  2. 我们如何正确设置反向 dns 的 PTR 记录,子域应该指向它发送电子邮件的服务器还是主域的服务器?
  3. 如何让 Amazon SES 抛出 SPF Pass,而不是 SPF Neutral?
4

1 回答 1

4
  1. 你不能。您提到的线程中的答案是正确的。Mailchimp 会将退回地址设置为自己的域。因此,将范围添加到您自己的 SPF 记录不会改变任何内容(SPF 会检查退回地址,而不是header.from地址)。虽然您没有完全冗余地进行身份验证,但您仍在通过 DMARC,并且它不应该影响您的域的声誉(或者没有人会使用 MailChimp)。
  2. 只有 IP 地址的所有者才能在 DNS 中设置 PTR 记录。它应该指向发送电子邮件的服务器的名称,最好是EHLO/中的名称HELO我认为这个线程有正确的答案,虽然我从来没有亲自设置过。
  3. 您的 AmazonSES 电子邮件中使用的退回地址域是什么?您是否按照此处的说明设置了自定义邮件发件人地址?Neutral通常会为 SPF 记录返回一个结果,该记录以结尾?all且不传递其左侧的任何内容。可能发生的另一件事(如果 SPF 域是您自己的域)是您达到了DNS TXT 记录的“每字符串字符数限制”。如果您没有将记录分成至少 2 个字符串,则检查可能不会在 Mailchimp 包含之外执行。并且由于没有all修饰符(未评估),它默认为neutral. 您可以使用任何查找工具查看您的 SPF 记录,但使用https://dns.google.com查询您的域对于 TXT 记录,应向您显示(转义)双引号 (") 标记,以指示字符串已被剪切的位置。例如,您可以检查此 SPF 记录以查看其外观:[…]ip4:185.211.120.0\"\"/22 ip4:185.250.236.0/22[…]

最后要注意的一件事是您已接近DNS 查找限制。看起来您已经进行了 8 次查找。超过 10 次查找将导致 SPF 检查导致PERMERROR

于 2018-12-31T14:27:14.283 回答