我们托管自己的电子邮件,但使用 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 之旅之前遇到的困难之后,把所有东西都整齐地捆绑起来真是太好了。
DKIM 签名与
d=sendgrid.net
信封发件人即Return-Path
是[email protected]
。由于 DKIM 和 SPF 验证都在使用sendgrid.com
,它与您的域不对齐:这是DMARC 对齐的要求。幸运的是,Sendgrid 支持自定义DKIM 选择器和自定义返回路径的自定义域身份验证。
DMARC 不是为了获得更好的声誉。这是为了防止其他人在
From
标头中使用您的域,这可能会导致声誉不佳或更糟。所以这绝对是专门针对 Sendgrid 的。流程将根据您尝试使用的特定第 3 方电子邮件发件人而有所不同。甚至 Sendgrid 也可能会更改其 UI。
添加后(如果您需要向第三方授予访问建议记录的权限,您可以使用“发送给同事”),单击验证。您还可以在发件人身份验证页面上检查验证状态。就我而言,它在一开始只是部分起作用-成功验证所有三个记录需要一天多的时间。我怀疑您还必须实际手动尝试验证。至少对我来说,一天左右的手动尝试终于奏效了。
验证 SPF、DKIM 和 DMARC 是否适用于您的服务器和Sendgrid 发送的电子邮件!如果适用,开香槟。如果没有,请继续下一次危机。