![如何将另一个发件人(例如 Sendgrid)列入 DMARC 白名单?](https://linux22.com/image/750322/%E5%A6%82%E4%BD%95%E5%B0%86%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%8F%91%E4%BB%B6%E4%BA%BA%EF%BC%88%E4%BE%8B%E5%A6%82%20Sendgrid%EF%BC%89%E5%88%97%E5%85%A5%20DMARC%20%E7%99%BD%E5%90%8D%E5%8D%95%EF%BC%9F.png)
我们托管自己的电子邮件,但使用 Sendgrid 代表一些无法轻松处理我们的邮件配置的内部 PHP 服务发送邮件(例如,它们默认不允许自签名证书,因此让它们连接到我们的服务器来发送诸如帐户激活电子邮件之类的内容是一个 PITA,就像必须破解 CMS 的功能来传递一系列配置覆盖 - 对于少数几封电子邮件来说,我认为这不管用,就使用了 Sendgrid 的免费套餐)。
我可以设置我们的 SPF 来明确允许 Sendgrid 代表我们发送电子邮件:
ourdomain.com. IN TXT "v=spf1 mx a ip4:OUR.IP.GOES.HERE/32 include:sendgrid.net -all"
因此,我们发送的邮件和 Sendgrid 发送的邮件都有并行路径来传递 SPF 和 DKIM。(我没有为自己设置 DKIM 做任何特别的事情,但这有点复杂 - FWIW,这是我遵循的教程。
但是现在我想用 DMARC 来完成所有事情,而 Sendgrid 电子邮件却失败了,尽管它们通过了 SPF 和 DKIM:
Authentication-Results: mx.google.com; dkim=pass [email protected] header.s=smtpapi header.b=eI2rawkZ; spf=pass (google.com: domain of [email protected] designates SENDGRID.IP.GOES.HERE as permitted sender) smtp.mailfrom="[email protected]"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ourdomain.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.net; h=from:subject:content-type:content-transfer-encoding:mime-version: x-feedback-id:to; s=smtpapi; bh=AZ+8LE7VkXTKxox/rLn7opOhEWv+baJWKr9E5fUOSKs=; b=eI2rawkZeMvtcJXThu7pufwbVPjRHa5xx46txJj0j9gNNDxNs68y8bcPlj1T9r7rxDK4 oi6e19GMvtdyttXR5WKjg2T+w0p5Ep3Ni6YRQhxq4ZsGcO0mZiRXyNf4BdZ3cOgLKXwECh dMSOaHyK0lR91Xp6eTnOYE7bT9hcRVrWA=
我们发送的电子邮件正在传递:
Authentication-Results: mx.google.com; dkim=pass [email protected] header.s=default header.b=fySBSueO; spf=pass (google.com: domain of [email protected] designates OUR.IP.GOES.HERE as permitted sender) [email protected]; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ourdomain.com
我们的 DMARC 记录设置如下:
_dmarc.ourdomain.com. 299 IN TXT "v=DMARC1\; p=none\; pct=100\; rua=mailto:[email protected]"
有没有办法调整我们的 DNS(或其他什么?)以允许 Sendgrid 电子邮件通过 DMARC 检查?然后我们可以安全地将推荐的“p”操作提升为“隔离”或“拒绝”。不过,如果这不会对我们的声誉造成很大的损害,我很乐意将其保留为“无”。如果能把所有事情都整齐地联系起来就好了,从我遇到的困难在我开始 SPF / DKIM / DMARC 之旅之前。
答案1
DKIM 签名d=sendgrid.net
并信封发件人即Return-Path
。[email protected]
由于 DKIM 和 SPF 验证都使用sendgrid.com
,因此与您的域名不一致:这是DMARC 对齐。
幸运的是,Sendgrid 支持自定义域身份验证对于定制DKIM 选择器和定制返回路径。
但是,如果这不会严重损害我们的声誉,我很乐意将其保留为“无”。
DMARC 不是为了取得更好的声誉。这是为了防止其他人在From
标头中使用您的域名,这可能会导致名声不好甚至更糟。
答案2
所以这绝对是专门针对 Sendgrid 的。流程将根据您尝试使用的特定第三方电子邮件发件人而有所不同。甚至 Sendgrid 也可能会更改其 UI。
- 访问 app.sendgrid.com
- 转至设置 > 发件人身份验证
- 单击“验证您的域名”按钮。
- 插入您的 DNS 主机。就我而言,它肯定不在列表中,因此我选择“其他主机”并直接输入。我也不会进入品牌链接 - 我不在乎我的自动帐户管理员电子邮件中的链接是否在 URL 中带有“sendgrid”。
- 输入您发送邮件的域名,然后勾选“自动安全”和“使用自定义 DKIM 选择器”。[我必须承认我没有尝试这个过程不是使用自定义选择器。我们大部分电子邮件都是从我们自己的服务器发送的,我担心会弄乱我现有的设置。] 对于 DIKM 选择器,只需编写一些您不使用的内容,例如 Sendgrid 的“sg”。
- 您将获得一堆 CNAME 记录以添加到您的 DNS,如下所示:
添加这些记录后(如果需要让第三方访问提议的记录,可以使用“发送给同事”),单击“验证”。您还可以在“发件人身份验证”页面检查验证状态。就我而言,它一开始只是部分起作用 - 成功验证所有三条记录需要一天多的时间。我怀疑您还必须手动尝试验证。至少对我来说,大约一天后手动尝试终于成功了。
验证 SPF、DKIM 和 DMARC 是否适用于您的服务器发送的两封电子邮件和由 Sendgrid 提供!如果可以,就开香槟庆祝。如果不可以,就继续应对下一次危机。