如何设置SPF以传递Mailchimp,SES和EC2,以便DMARC不会因错位而部分失败

Ryf*_*lex 7 spf email-spam dkim mailchimp dmarc

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

  • Mailchimp
  • 山魈
  • Mailgun
  • 亚马逊SES
  • 从服务器本身

我们已经为所有来源正确配置了SPF和DKIM设置,因此我们决定添加DMARC,同时我们将所有内容更改为-all.

我们所有的电子邮件都已经过了很好但我们注意到我们的Mailchimp电子邮件是"SPF Incapable",因此没有完全通过.

大多数电子邮件客户端/帐户显示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而被发送到垃圾邮件.

我假设,对此的修复是请求亚马逊为我们使用的3x 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. 我如何让亚马逊SES抛出SPF通行证,而不是SPF中立?

Rei*_*nto 4

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

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

\n