
开发者推出 SPF 宏调试工具,可预览宏展开结果
来源标题:Show HN: SPF Macro Debugger
一款 SPF 宏调试工具上线,可在发布记录前预览 %{i}、%{s}、%{d} 等宏的实际展开结果。用户可自定义客户端 IP、发件人、HELO 和域名等求值上下文,查看每个宏如何转换,并理解按 IP 和按发件人的授权模式。该工具针对 RFC 7208 §7 定义的 SPF 宏模板语言,这类语法平时少有工具能直观调试。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
展开 SPF 宏——%{i}、%{s}、%{d}、%{l}、%{o}、%{h}、%{v}、%{p}——使用你自己的求值上下文。在发布记录之前,准确看清每个宏展开成什么,并理解大多数接收方从未文档化的按 IP 和按发件人授权模式。
exists:42.100.51.198.in-addr._spf.example.com
逐宏拆解
%{ir}
%i
基础值
198.51.100.42
变换
reverse
展开为
42.100.51.198
%{v}
%v
基础值
in-addr
变换
无变换
展开为
in-addr
%{d}
%d
基础值
example.com
变换
无变换
展开为
example.com
SPF 宏——规范中几乎没人读的那部分
RFC 7208 §7 定义了一种嵌入在 SPF mechanism 值中的小型模板语言。在求值时,接收方会用当前邮件中的值替换 %{i}(客户端 IP)和 %{s}(发件人地址)之类的占位符。其结果让你能把按发件人或按 IP 的逻辑放进一条静态 SPF 记录——这是大多数 ESP 都在用、却几乎没多少管理员能轻松调试的技巧,因为从来没有一种干净的方式能看到展开结果。
上面的调试器让你粘贴任何带宏的 mechanism,设置求值上下文(客户端 IP、发件人、HELO、域名),然后看到最终的展开形式,以及逐宏拆解,显示基础值、变换和输出。
每个宏都接受字母与右花括号之间的可选变换:%{letter[digits][r][delimiter]}。
SPF Flattener 只能在求值时把 include 链解析为静态 IP。宏是用运行时上下文(客户端 IP、发件人)按每封邮件求值的。包含 exists:%{ir}.%{v}._spf.%{d} 的记录无法预先扁平化——不存在单一的静态答案。Flattener 会用 macro_in_mechanism 警告标记这一点,并跳过展开。
%{p} 是经过验证的 PTR 域名——接收方对客户端 IP 做反向 DNS 查询,并确认正向 A 记录匹配。根据 RFC 7208 §7.2,如果验证失败(对于没有正确 FCrDNS 的 IP 来说这是典型情况),%{p} 会展开为 unknown。许多接收方为了性能完全跳过 PTR 查询。综合来看:%{p} 几乎总是返回 unknown——围绕这一点来设计,而不是指望它。
工具上方的预设覆盖了最常被引用的模式。两个值得了解的实例:
阅读完整的 SPF 指南以了解更多。
为你的所有邮件认证协议提供持续监控、聚合报告解析和可操作的洞察。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。