AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1157001
Accepted
tftd
tftd
Asked: 2024-03-28 05:34:05 +0800 CST2024-03-28 05:34:05 +0800 CST 2024-03-28 05:34:05 +0800 CST

如何获得 SPF 对齐以通过子域的 DMARC?

  • 772

我有以下 DNS 配置:

$ dig +noall +answer -t txt example.com
example.com.    626 IN  TXT "v=spf1 +a +mx include:sendgrid.net include:_spf.google.com -all"

$ dig +noall +answer -t txt google._domainkey.example.com
google._domainkey.example.com.  600 IN TXT "v=DKIM1; k=rsa; ......"

$ dig +noall +answer -t txt _dmarc.example.com
_dmarc.example.com. 300 IN  TXT "v=DMARC1; p=none; pct=100; rua=mailto:report@email; aspf=s; adkim=r;"

$ dig +noall +answer -t txt em1234.example.com
em1234.example.com. 358 IN  CNAME   1234.xyz.sendgrid.net.
1234.xyz.sendgrid.net. 358 IN   TXT "v=spf1 ip4:149.72.253.162 -all"

当我发送电子邮件时,example.com一切正常,DMARC 也通过了。通过 SendGrid 和子域发送的电子邮件也是如此em1234.example.com。然而,发送报告的报告工具声称 100% SPF 对齐失败,这很奇怪,因为 Gmail 和电子邮件标头的情况恰恰相反:

ARC-Authentication-Results: i=1; mx.google.com;
       dkim=pass [email protected] header.s=s1 header.b=Rv669YsQ;
       spf=pass (google.com: domain of bounces+4746099-3d38-recipient_email=recipient.com@em1234.example.com designates 149.72.253.162 as permitted sender) smtp.mailfrom="bounces+4746099-3d38-recipient_email=recipient.com@em1234.example.com";
       dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=example.com

所以我在这里遇到的问题是如何 SPF 对齐 SendGrid 使用的子域?aspf修复此设置的唯一方法relaxed还是有其他方法?

spf
  • 1 1 个回答
  • 349 Views

1 个回答

  • Voted
  1. Best Answer
    Appleoddity
    2024-03-28T12:58:18+08:002024-03-28T12:58:18+08:00

    在这种情况下,DMARC 通过,但 SPF 对齐失败。因为 sendgrid 代表发送电子邮件,example.com所以接收邮件服务器看到的是:

    • mail.FROM 地址(收件人看到并回复的地址)是@example.com。
    • Return-Path 标头(传递失败和退回邮件转到的位置)是@em1234.example.com

    DMARC 检查 3 项内容:

    • SPF是否通过?
    • DKIM 通过了吗?
    • SPF 或 DKIM 是否一致?

    所有 3 项都必须正确才能通过 DMARC。

    在您的示例中,您的 DMARC 记录指定aspf=s(严格)和adkim=r(宽松)。当模式为严格时,mail.FROM 和 Return-Path 中列出的两个域必须完全匹配才能通过对齐。当模式放宽时,子域也会通过。

    由于 SPF 和 DKIM 通过,并且 DKIM 保持一致(由于宽松模式),因此 DMARC 通过。但是,由于 SPF 对齐检查处于严格模式,并且两个域不完全匹配,因此 SPF 对齐失败。

    DMARC 仅需要 SPF 对齐或 DKIM 对齐之一即可通过。因此,通过 DMARC 测试并不意味着 SPF 和 DKIM 一致。

    您的报告工具是正确的。aspf=r在这种情况下你需要改变。或者,您必须让 sendgrid 使用相同的 header.FROM 和 Return-Path 域。然而,第三方电子邮件系统通常使用主域的子域。因此,除非 sendgrid 有任何其他选项,否则需要将 SPF 对齐检查更改为宽松模式,并且不应给您的组织带来任何风险。

    有关 SPF 对齐的更多信息,请访问:https://mxtoolbox.com/dmarc/spf/spf-alignment

    此 Sendgrid 文档中具体描述了该问题:https://support.sendgrid.com/hc/en-us/articles/13925777447451-How-to-use-Custom-Return-Path-with-a-Strict-SPF-标识符对齐-DMARC-策略

    我注意到 Sendgrid:

    • 支持自定义返回路径
    • 不建议使用严格对齐
    • 要使用自定义返回路径,这意味着您实际上从 @subdomain.example.com 发送邮件,这通常是不需要的。
    • 5

相关问题

  • 这封电子邮件如何通过 DMARC?

  • 防止您看起来像垃圾邮件发送者的最佳做法 [重复]

  • 如何为服务器上的多个域配置 SPF?(也允许 gmail 作为发件人)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve