email - SendGrid Automated Security 将如何处理 SPF 记录?
问题描述
我使用 SendGrid,我有 2 个专用 IP……我的网站使用 SendGrid 发送电子邮件。
同时我使用 G Suite,并且我个人使用 G Suite (Google Workspace) 发送电子邮件
我想设置 DKIM 和 SPF 记录。SendGrid 文档有一个名为Automated Security的选项:
自动化的安全性允许 SendGrid 处理带有 CNAME 记录的出站电子邮件的 DKIM 签名和 SPF 身份验证。这允许您添加专用 IP 地址或更新您的帐户,而无需更新您的 SPF 记录。
后来……
启用自动安全性后,SendGrid 会生成 3 个不同的 CNAME 记录。在设置域身份验证的后续步骤中,您将这些记录提供给您的 DNS 提供商,然后验证它们是否正确上传。
如果您选择关闭,我们将生成 1 条 MX 记录和 2 条 TXT 记录。在设置域身份验证的后续步骤中,您将这些记录提供给您的 DNS 提供商,然后验证它们是否正确上传。
因此,当启用自动安全性时,我不需要添加任何 SPF 和 DKIM 记录,而是添加了自动安全性所需的 3 个 CNAME 记录......
另一方面,我也在使用 G Suite,而 G Suite 希望我添加 DKIM 和以下 SPF 记录:
v=spf1 include:_spf.google.com ~all
据我了解,上述 SPF 记录意味着这_spf.google.com
是唯一应该发送我的电子邮件的服务器......
所以我的问题是:添加 G Suite SPF 记录是否与 SendGrid 自动安全性冲突?我的 SPF 记录说 My SendGrid 的专用 IP 不允许发送电子邮件?
想象一下雅虎邮件服务器从我的一个专用 IP (SendGrid) 收到一封电子邮件......雅虎如何知道我正在使用自动安全并且 SPF 记录由 SendGrid 处理?因为如果雅虎检查了 SPF 记录,SPF 记录告诉它只_spf.google.com
允许发送我的电子邮件?
解决方案
请注意:您的问题在服务器故障论坛上可能会做得更好。
回答您的问题:不SPF
,您列出 G Suite 的记录与您的 SendGrid 设置没有冲突。
重要的是要理解:SPF
绝对不说允许谁向FROM
您的域发送电子邮件。SPF
而是对地址进行身份验证Return-Path
,并且您正在使用“自动安全性”中的委托记录为退回邮件(Return-Path
标头的用途)创建一个子域。CNAME
所以,基本上,Sendgrid 要求您为他们创建一个子域,例如em123.yourdomain.com
通过 CNAME 记录。您将该子域委托给他们,针对您在 DNS 中的个人 Sendgrid 租户区域,他们在该区域的根目录处创建 SPF 记录和 MX 记录。来自 Sendgrid 的典型电子邮件将如下所示:
from: you@yourdomain.com
,Return-Path: bounces@em123.yourdomain.com
因此,接收服务器将检查SPF
记录em123.yourdomain.com
以查看您的 IP 是否被允许。
其他两个 CNAME 用于 DKIM 选择器记录。它们指向 Sendgrid 定期管理和轮换的 TXT 记录。
那么为什么不让 Sendgrid 在 Return-Path 中使用他们的域,而根本不打扰CNAME
设置呢?
DMARC
要求您的Return-Path
域与您的域对齐FROM
,或者您的DKIM
签名中使用的域与您的FROM
域对齐。最好两者兼而有之。
推荐阅读
- python - 如何用 Python 中的 pandas 或其他包绘制漂亮的彩色表格?
- sql-server - T-SQL:需要 Top N 才能始终返回 N 行,即使为 null 或空白
- pandas - 如何跳过具有不明确列的多个 CSV 文件中的重复标题并合并为一个大数据框
- maven - 如何在使用 maven-dependency-plugin 解压工件时重命名文件?
- java - 从android中的第一个数组中查找第二个数组中存在的元素的索引
- command-line - 使用 oc 命令行客户端实例化 OpenShift 服务目录模板
- arrays - 如何返回包含用户输入的数组数组?
- python - 使用python执行本地服务器后如何修复404错误
- xpath - xpath - 考虑内部元素按文本获取元素
- laravel - Laravel Nova:TypeError:无法将 undefined 或 null 转换为对象