SPF 记录检查器

SPF(Sender Policy Framework)记录语法验证、机制解析与安全评估

🔍 SPF 记录验证

📖 SPF 机制详解

机制限定符含义匹配结果
+all通过 (+)允许所有IP(极度危险!)⚠️ 永远通过
-all拒绝 (-)拒绝所有未列出的IP✅ 推荐
~all软失败 (~)标记为可疑但不拒绝⚠️ 可接受
?all中性 (?)不判定(不推荐)❌ 不推荐
ip4:addr/mask可配限定符指定IPv4地址或网段精确匹配则通过
ip6:prefix可配限定符指定IPv6前缀精确匹配则通过
a:domain可配限定符匹配域名的A记录A记录IP在发送者中
mx:domain可配限定符匹配域名的MX记录MX服务器IP匹配
include:domain继承限定符引用其他域的SPF策略递归检查目标域
exists:domain可配限定符如果域名存在任何DNS记录存在即匹配
ptr:domain可配限定符反向DNS匹配(已弃用)PTR记录匹配域名
redirect=domain-重定向到其他域的SPF完全使用目标策略
exp=text-解释字符串(已弃用)失败时显示文本

💡 SPF 最佳实践

✅ 推荐做法
  • 以 v=spf1 开头
  • 以 -all 或 ~all 结尾
  • 避免 +all (等于无保护)
  • 使用 include 引用已知服务商
  • DNS查询次数 < 10次
  • 定期更新IP列表
❌ 常见错误
  • 多个SPF记录(只允许一条)
  • SPF记录过长(>450字节)
  • 嵌套include超过10层
  • 使用已弃用的ptr机制
  • 缺少all结尾
  • TXT和SPF类型混用
🔧 常用SPF模板
/* Google Workspace */
v=spf1 include:_spf.google.com ~all

/* Office 365 */
v=spf1 include:spf.protection.outlook.com ~all

/* 自建邮件 */
v=spf1 ip4:x.x.x.x mx ~all

/* 仅第三方服务 */
v=spf1 include:_spf.google.com
  include:spf.protection.outlook.com ~all