SPF Toolbox v2.2.0 介绍与选型指南

SPF Toolbox(开源邮件 DNS 体检 Web 应用,v2.2.0)认知与选型:功能全景、PHP+JS 两层架构、11 类查询能力边界,并与 MXToolbox/dmarcian/Kitterman/手工 dig 量化对比。纯联网溯源,检索日期 2026-10-26。

SPF ToolboxSPF Toolbox邮件服务域名服务2026/10/26

SPF Toolbox v2.2.0 介绍与选型指南

目标:面向需要自建「邮件 DNS 记录体检」能力的系统管理员,讲清 SPF Toolbox 是什么、能查什么、架构如何、适合谁用,并与 MXToolbox 在线版、dmarcian、Kitterman SPF validator、手工 dig 做量化选型对比。本篇为认知篇,全部信息来自公开网络溯源(来源与检索日期见「环境信息」),未包含本地实测数据。

一、环境信息

本篇为认知溯源篇:所有事实均来自官方仓库、官方发布源、公共徽章服务与竞品官网,检索日期统一为 2026-10-26,未做本地实测。溯源清单如下:

信息项来源检索日期
项目主仓库与 READMEhttps://github.com/charlesabarnes/SPFtoolbox2026-10-26
发布历史(releases.atom)https://github.com/charlesabarnes/SPFtoolbox/releases.atom2026-10-26
最新稳定版 v2.2.0https://github.com/charlesabarnes/SPFtoolbox/releases2026-10-26
社区活跃度(星数/最后提交)https://img.shields.io/github/stars/charlesabarnes/SPFtoolbox.json 与 https://img.shields.io/github/last-commit/charlesabarnes/SPFtoolbox.json2026-10-26
许可证(LICENSE 文件)仓库 v2.2.0 源码包内 LICENSE2026-10-26
MXToolbox 在线版https://mxtoolbox.com/2026-10-26
Kitterman SPF validatorhttps://www.kitterman.com/spf/validate.html2026-10-26
dmarcian 官网https://dmarcian.com/2026-10-26

版本结论先行:截至检索日,SPF Toolbox 官方最新稳定版为 v2.2.0(发布于 2025-05-09),社区星数 299(shields.io),最后提交 2025 年 8 月。下文所有版本号、日期均以上表来源为准。

二、软件概述

SPF Toolbox(仓库名 SPFtoolbox,本文统一写作 SPF Toolbox)是一个开源的 JavaScript + PHP Web 应用,官方仓库一句话定位是:"SPFtoolbox is a Javascript and PHP app to look up DNS records such as SPF, MX, Whois, and more"——即「查询并解读 SPF、MX、Whois 等 DNS 记录的应用」。它面向的典型用户是邮件服务器管理员与运维人员:配置完邮件域后,需要快速核对 SPF、MX、DMARC、黑名单等一整套「邮件可达性体检」项,SPF Toolbox 把这些分散的查询动作合并成一个单页 Web 界面,输入域名一键出全部结果。

项目由 Charles Barnes 开发维护,2017 年首次发布(首个 release 为 V0.5,2017-07-19),最新稳定版 v2.2.0 发布于 2025-05-09。应用同时提供 Chrome 浏览器扩展形态(Chrome Web Store 徽章见 README),并可通过 YunoHost 应用商店、Heroku 一键部署或手动上传到任意 PHP 网页服务器运行。

💡 技术拓展:标题里的 SPF 只是切入点,邮件域「体检」实际围绕三件套展开——

机制解决的问题记录形态
SPF声明「哪些服务器有权替我发信」,收方据此拒伪造域名 TXT 记录,如 v=spf1 include:spf.mail.qq.com ~all
DKIM对每封信做数字签名,证明内容未被篡改选择器._domainkey.域名 下的 TXT 公钥记录
DMARC统筹 SPF/DKIM 校验失败的处置策略与报告_dmarc.域名 下的 TXT 策略记录

三者互补:SPF 防「服务器伪造」,DKIM 防「内容篡改」,DMARC 给出统一策略与反馈闭环。SPF Toolbox 对三者均有覆盖路径:SPF/DKIM 走 TXT 查询(DKIM 需带选择器子域,见后文),DMARC 有专门的查询入口(自动拼 _dmarc. 前缀)。

三、核心架构

从公开源码结构(v2.2.0 源码包)看,SPF Toolbox 是一个极简的两层架构,无数据库、无框架依赖、无构建步骤:

层组成职责
前端index.php(单页 UI)+ javascript/main.js(原生 JS,Fetch API)表单输入域名与查询类型,异步请求后端,渲染结果表格
后端operations/index.php(入口分发)+ 11 个查询类(A.php/AAAA.php/Mx.php/Txt.php/Dmarc.php/All.php/Blacklist.php/Port.php/ReverseLookup.php/Hinfo.php/Whois.php)每个类实现同一个 OperationInterface 接口,按 request 参数分发,返回 JSON

几个值得注意的架构事实(均来自源码阅读):

  1. DNS 查询直接走 PHP 内置函数:A/AAAA/MX/TXT/HINFO/ALL 等查询都基于 PHP 的 dns_get_record(),黑名单基于 checkdnsrr(),端口检测基于 fsockopen()(默认探测 25、53、80、443、465、587、993 七个端口,超时 5 秒)。也就是说,查询能力完全继承自服务器操作系统的解析器(/etc/resolv.conf 指向的上游 DNS)。
  2. Whois 复用打包的 phpwhois 库:operations/phpwhois/ 目录内置了一套完整的 phpwhois 解析器(支持 .com/.net/.ru/.uk 等大量 TLD 的 whois 服务器协议),不依赖外部 whois 命令。
  3. DMARC 查询自动拼前缀:Dmarc.php 固定在域名前拼接 _dmarc.,用户只需输入裸域名。
  4. 黑名单聚合 50 个 DNSBL 区域:Blacklist.php 的 LOOKUP_HOSTS 常量列出 50 个黑名单区域(spamhaus、sorbs、spamcop、barracuda 等主流 DNSBL),把域名解析出的 IP 反转后逐个反查,命中即标 FAIL。
  5. 响应自带跨域头:后端入口统一输出 Access-Control-Allow-Origin: * 与 Cache-Control: no-store 等头,前端每次查询都是实时查询、不做结果缓存,第三方页面也能直接调用这个 JSON 端点。

💡 技术拓展:SPF Toolbox 查黑名单用的 DNSBL(DNS-based Blackhole List)是邮件反垃圾的行业标准机制——黑名单方维护「已知垃圾邮件源 IP」的 DNS 区域,收件方查 反转IP.区域名,有返回值即命中。同类常见 DNSBL 对比:

区域运营方特点
zen.spamhaus.orgSpamhaus业界最权威,返回 127.0.0.x 编码段
bl.spamcop.netSpamCop用户举报驱动,时效快
dnsbl.sorbs.netSORBS按垃圾类型细分 16 个子区域
b.barracudacentral.orgBarracuda商业反垃圾厂商维护

SPF Toolbox 内置的 50 个区域即上述主流 DNSBL 的聚合清单(完整清单见《SPF Toolbox v2.2.0 配置参数详解》),判定逻辑是「反查有 A 记录即判 FAIL」,因此对返回非 127 网段的区域需人工复核判定合理性。

四、功能特性

对照 Web 界面的查询类型下拉框(index.php)与后端 11 个查询类,SPF Toolbox v2.2.0 的功能清单如下:

#界面选项底层 request 值功能说明
1IP/Get A Recorda查询域名 IPv4 地址(A 记录)
2IPV6/Get AAAA Recordaaaa查询域名 IPv6 地址(AAAA 记录)
3Mx/Get MX Recordmx查询收信服务器(MX 记录),排查「对方收不到信」第一步
4SPF/TXTtxt查询全部 TXT 记录,从中读取 SPF 授权声明
5DMARCdmarc自动拼接 _dmarc. 前缀查询 DMARC 策略记录
6Blacklist Checkblacklist域名 IP 对 50 个 DNSBL 区域聚合反查,命中标 FAIL
7Whoiswhois内置 phpwhois 库查询域名注册信息(注册商、到期日等)
8Check If Port Open/Forwardedport对域名/IP 的指定端口做 TCP 连通性探测(默认 7 个常用端口)
9Hinfo/Get Hardware Informationhinfo查询 HINFO 记录(多数域名无此记录,返回空)
10Get All Simple DNS Recordsall一次性拉取全部 DNS 记录(先 DNS_ALL 再回退 DNS_ANY)
11Host By IP/Reverse LookupreverseLookup反向解析:由 IP 查主机名(PTR)

功能层面的四个亮点与三个短板(基于源码能力边界):

亮点:

  • 一键聚合:MX、SPF、DMARC、黑名单、端口、whois 全在一个页面,不用在多个在线工具间跳转;
  • 无状态零配置:无数据库、无账号体系、无配置文件,解压即用,结果实时查询(响应头明令 no-store 禁缓存);
  • 端点即 API:后端 operations/?domain=…&request=… 返回纯 JSON 且允许跨域,可直接当内部 HTTP API 被 Shell(curl/jq)或监控系统调用;
  • 内网友好:自托管后,内网邮件系统排障不必把内部域名暴露给第三方在线工具。

短板:

  • 无 DKIM 专用入口:界面没有 DKIM 查询项,需要变通——把 选择器._domainkey.域名 整串当作域名走 TXT 查询;
  • 无 SPF/DMARC 语法解读:只展示原始记录文本,不像 Kitterman 工具那样做 RFC 7208 语法校验与处理限制(processing limit)检测;
  • 无历史与监控:每次都是实时查询,没有投递日志留存、变化告警等持续监控能力(这正是商业工具 MXToolbox/dmarcian 的付费卖点)。

五、快速开始

以下为官方 README 给出的手动安装最小路径(摘自仓库 README「How to install SPFToolBox」一节,检索日期 2026-10-26):

  1. 下载最新 release:https://github.com/charlesabarnes/SPFtoolbox/releases/latest
  2. 将内容上传到已启用 PHP 5.3+ 的网页服务器;
  3. 解压到服务器上你期望的目录;
  4. 浏览器访问 index.php;
  5. 输入域名提交查询。

除手动安装外,README 还给出两种托管平台的替代路径:YunoHost 用户可在应用商店一键安装(README 内嵌 install-with-yunohost 按钮);Heroku 用户可点击 Deploy to Heroku 按钮直接部署(仓库根目录带 app.json)。此外仓库自带 Dockerfile(基于 php:apache 官方基础映像,把源码拷入 /var/www/html)并通过 GitHub Actions 工作流向 GHCR 发布构建产物,偏好 Docker 化运行的用户可按 Dockerfile 自行构建。

在本专栏的部署篇中,上述官方路径已按「Apache + mod_php」形态完成从零部署实录(tar.gz 与 Git 源码双方案、systemd 托管、验证回显与 403 权限/出站 TCP/RFC8482 排障):《Ubuntu 22.04 安装 SPF Toolbox v2.2.0 指南》;逐参数修改-验证闭环见配置篇 《SPF Toolbox v2.2.0 配置参数详解》;curl/jq 命令行用法见命令篇 《SPF Toolbox v2.2.0 常用 CLI 命令详解》。

💡 技术拓展:PHP 部署形态不止「Apache + mod_php」一种,常见组合对比:

形态原理适用场景
Apache + mod_phpPHP 作为 Apache 模块常驻最简单,传统 LAMP 默认
Nginx + PHP-FPMFastCGI 进程池独立运行高并发、资源更可控
PHP 内置服务器php -S 单进程开发服务器本地临时演示,不建议生产

SPF Toolbox 对三者均无特殊要求(纯 PHP,无扩展依赖、无 rewrite 需求),本专栏部署篇实际采用 Ubuntu 22.04 默认的「Apache + mod_php」组合,部署路径最短。

六、适用场景与限制

适用场景:

  1. 邮件服务器上线自查:新邮件域配置完 SPF/MX/DMARC 后,用聚合界面逐项核对是否生效;
  2. 投递故障排查:「对方收不到我们的信」时,先看 MX 与黑名单两项是否异常,再查 SPF 是否漏了新上线的发信服务器;
  3. 内网邮件系统日常巡检:自托管在内网,配合 curl/jq 把查询端点写进巡检脚本,定期输出 JSON 结果做留档比对;
  4. 教学与演示:代码量小、无需数据库,适合作为「邮件 DNS 记录如何工作」的演示教具。

限制与注意(基于源码与公开文档归纳):

  • 需要 Web 服务器所在环境能出站访问 DNS(UDP 53)与 whois 服务器(TCP 43);端口探测需要相应出站 TCP 权限,被防火墙拦截时会全部显示 closed;
  • 无用户认证机制,公网部署时应自行加访问控制(如 Apache Basic Auth 或反代层鉴权),避免沦为开放 DNS 查询跳板;
  • 无结果缓存与限流,黑名单查询会对 50 个区域逐个反查,对解析器响应慢的环境单次查询可能耗时超过一分钟;
  • 项目更新节奏较慢(2019-01 到 2025-05 之间无发布),安全修复依赖使用者跟进仓库动态;
  • README 写明的运行门槛是 PHP 5.3+,但应用年久,在新版 PHP(8.x)上部署需留意弃用告警对 JSON 输出的影响(部署篇有实测验证)。

七、同类选型对比

围绕「邮件 DNS 记录体检」这一需求,把 SPF Toolbox 与三类典型替代方案做量化对比。对比对象:MXToolbox 在线版(最常用的商业在线诊断)、dmarcian(商业 DMARC 平台)、Kitterman SPF validator(老牌免费 SPF 单页工具)、手工 dig(命令行原生方案)。

7.1 量化对比表

维度SPF Toolbox v2.2.0MXToolbox 在线版dmarcianKitterman SPF validator手工 dig
形态开源自托管 Web 应用在线 SaaS 工具站在线 SaaS 平台免费在线单页工具本机命令行
开源与许可开源;LICENSE 文件为 MIT(Copyright (c) 2017 Charles Barnes),package.json 元数据标 ISC,以 LICENSE 文件为准闭源闭源网页服务免费;底层库 pyspf 为开源dig 属 BIND 工具集(ISC 许可)
部署依赖PHP 5.3+ 网页服务器,解压即用无需部署无需部署无需部署仅需本机安装 dnsutils/bind9-dnsutils
查询能力11 类查询:A/AAAA/MX/TXT/DMARC/黑名单(50 个 DNSBL)/whois/端口/HINFO/全部记录/反向解析MX/SPF/DKIM/DMARC/黑名单等在线诊断(SuperTool,具体清单以官网为准)DMARC 报告聚合分析、SPF 记录平展检查(SPF Surveyor)等仅 SPF:RFC 7208 语法校验,并动态检测处理限制错误(官网自述使用 pyspf 库,其他工具少见此能力)单次 DNS 查询任意类型,结果自行解读
自动化接口AJAX 端点返回 JSON、允许跨域,可 curl 直接调用官网交互为主,开放 API 属商业授权范围平台内报表,API 属商业授权无天然脚本化,可完全自动化
内网域名可用是(数据不出内网,仅出站 DNS/whois 查询)否(内部域名需交给第三方解析)否否是
持续监控无(纯实时查询)有(付费版投递监控与告警)有(DMARC 报告持续聚合)无无(需自建脚本轮询)
SPF 语法校验无以官网工具说明为准有(记录平展视角)有(RFC 7208 + processing limit,官网自述)无
社区活跃度(2026-10-26 检索)299 stars;8 个 release(V0.5 2017-07-19 → v2.2.0 2025-05-09);最后提交 2025-08(shields.io)闭源产品,无公开星数闭源产品,无公开星数个人维护的免费站点,无仓库BIND 生态标配,随发行版更新
成本免费自托管免费查询 + 付费订阅付费订阅(按域计费,以官网报价为准)免费免费

7.2 选型建议

  • 要内网可用、数据不出门、能当 API 被curl调用 → SPF Toolbox 是唯一同时满足三项的开源选项;适合邮件网关/邮件服务器运维的内网工具箱;
  • 只要快速查一次公网域名的 MX/SPF/黑名单、不想装任何东西 → MXToolbox 在线版最快,浏览器输入域名即得;
  • 要持续接收 DMARC 聚合报告、追踪伪造邮件源 → dmarcian 这类商业 DMARC 平台,SPF Toolbox 没有报告接收与聚合能力;
  • 要严格验证 SPF 记录语法是否合规(尤其是多层 include 导致的 10 次 DNS 查询上限) → Kitterman validator 的 pyspf 校验是独特能力,SPF Toolbox 只展示记录原文不做语法校验;
  • 要批量脚本化查询、写进自动化流水线 → 手工 dig(或 SPF Toolbox 的 JSON 端点 + curl/jq,用法见《SPF Toolbox v2.2.0 常用 CLI 命令详解》);SPF Toolbox 的价值在于把「人看的聚合界面」和「机器调用的 JSON 端点」合在同一服务里。

关键结论:SPF Toolbox 与在线工具不是替代关系,而是「私有化、可内网、可自动化」这一维度的补位——当查询对象是内部域名、使用方是运维脚本时它几乎无对手;当需要持续监控或 DMARC 报告聚合时,仍需商业平台补位。

八、参考链接