我们托管自己的电子邮件,但使用 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 之旅之前遇到的困难之后,把所有东西都整齐地捆绑起来真是太好了。