在windows server本地dns中添加spf需创建一条合法唯一的txt记录:主机名填@,值字段输入如“v=spf1 include:spf.protection.outlook.com ip4:203.0.113.42 ~all”,确保无多余引号、空格或重复记录,并用nslookup或在线工具验证。
在 windows server 本地 dns 中添加 txt 记录配置 spf,核心是创建一条合法、唯一、语法正确的 spf 记录,用于声明哪些邮件服务器被授权代表你的域名发信。这一步不依赖外部 dns 托管商,而是直接在你自建的 windows dns 服务器上操作。
确认 DNS 服务器角色已启用
确保你的 Windows Server 已安装并运行“DNS 服务器”角色。若未启用,需先通过“服务器管理器 → 添加角色和功能”安装 DNS 服务,并完成初始化配置(如正向查找区域已为你的域名创建)。
- 打开“DNS 管理器”(dnsmgmt.msc)
- 展开服务器节点 → “正向查找区域” → 找到你的域名(例如 example.com)
- 右键该区域 → 选择“其他新记录…” → 在弹出窗口中选“TXT 记录”,点击“确定”
填写 SPF 记录内容(关键格式不能错)
TXT 记录的主机名必须填 @(代表根域),值字段输入完整的 SPF 字符串。注意:SPF 是单条 TXT 记录,不可拆成多条;所有授权来源必须合并写在同一行。
- 主机:@(不要留空,也不要输 www 或其他子域)
- 文本值:v=spf1 include:spf.protection.outlook.com include:transmail.net ip4:203.0.113.42 ~all
- 其中:v=spf1 是必需版本标识;include: 引用第三方邮件服务(如 Microsoft 365、Zoho 等);ip4: 直接列出自有邮件服务器的 IPv4 地址;~all 表示“软拒绝”未授权来源(推荐初用),-all 为硬拒绝(更严格)
避免常见错误
SPF 验证失败往往源于细节疏忽,而非流程本身。
- 一个域名只能有一条 SPF TXT 记录。如果已有旧 SPF 记录,务必删除它,再合并写入新内容
- 不要在值开头或结尾加引号("..."),DNS 管理器会自动处理引号包裹
- 检查空格:关键词(如 v=spf1、include:、ip4:、~all)之间只允许单个空格,无多余换行或制表符
- TTL 值设为 3600(1小时)即可,无需特别调整
验证是否生效
记录添加后,DNS 传播通常即时(因是本地服务器),但建议仍用在线工具验证语法与解析结果。
- 打开命令提示符,执行:nslookup -type=TXT example.com(替换为你的域名),确认返回结果含完整 SPF 字符串
- 访问 Kitterman SPF Validator,输入域名,查看是否有语法错误或机制警告
- 若使用 Microsoft 365 或 Zoho 等服务,其后台“域验证”或“邮件身份验证”页面也会实时检测 SPF 是否就绪











