SPF/DKIM/DMARC配置完全指南:邮件认证三件套

SPF、DKIM、DMARC是邮件认证的三大核心协议,对于提升邮件送达率和防止域名被冒用至关重要。本文详细介绍三者的配置方法。

一、SPF(Sender Policy Framework)

作用


SPF记录指定哪些邮件服务器有权代表您的域名发送邮件。接收服务器通过查询SPF记录判断邮件是否来自授权服务器。

配置方法


在DNS中添加TXT记录:

域名: example.com
类型: TXT
值: v=spf1 include:_spf.google.com include:mail.mailserver.com ~all

参数说明:

  • v=spf1:SPF版本

  • include::包含其他域名的SPF记录

  • ~all:软失败(非授权服务器发送的邮件标记为可疑)

  • -all:硬失败(直接拒绝)

  • ?all:中性(不做判断)
  • 最佳实践


  • 列出所有合法发送服务器

  • 使用 ~all 而非 -all(避免误伤)

  • 定期审查和更新
  • 二、DKIM(DomainKeys Identified Mail)

    作用


    DKIM为邮件添加数字签名,接收服务器可验证邮件内容在传输过程中未被篡改,且确实来自声称的发送域名。

    配置方法

    1. 生成密钥对:


    openssl genrsa -out dkim_private.pem 2048
    openssl rsa -in dkim_private.pem -pubout -out dkim_public.pem
    1. 在DNS中添加公钥记录:


    域名: selector._domainkey.example.com
    类型: TXT
    值: v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ...
    1. 在邮件服务器中配置私钥签名


    最佳实践


  • 使用2048位密钥

  • 定期轮换密钥

  • 使用有意义的selector名称
  • 三、DMARC(Domain-based Message Authentication)

    作用


    DMARC整合SPF和DKIM的验证结果,并告诉接收服务器如何处理未通过验证的邮件。

    配置方法


    在DNS中添加TXT记录:

    域名: _dmarc.example.com
    类型: TXT
    值: v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; ruf=mailto:dmarc@example.com; pct=100; adkim=s; aspf=s

    参数说明:

  • p=quarantine:策略(none/monitor, quarantine/隔离, reject/拒绝)

  • rua=:汇总报告接收邮箱

  • ruf=:详细报告接收邮箱

  • pct=100:应用比例

  • adkim=s:DKIM对齐模式(s=严格, r=宽松)

  • aspf=s:SPF对齐模式(s=严格, r=宽松)
  • DMARC部署阶段

    1. 监控阶段(p=none):只收集数据,不影响邮件投递

    2. 隔离阶段(p=quarantine):将未通过验证的邮件放入垃圾箱

    3. 拒绝阶段(p=reject):直接拒绝未通过验证的邮件


    建议从 p=none 开始,观察2-4周数据后逐步升级策略。

    四、三件套的效果

    | 认证方式 | 作用 | 送达率影响 |
    |----------|------|-----------|
    | SPF | 防止域名被冒用 | +5-10% |
    | DKIM | 防止内容被篡改 | +5-10% |
    | DMARC | 统一认证策略 | +5-15% |
    | 三者配合 | 全面保护 | +15-30% |

    五、验证配置

    配置完成后,使用以下工具验证:

    1. 发送测试邮件到 autocheck+dkim@vali.email

    2. 使用 MX Toolbox 的 SPF/DKIM/DMARC 检查工具

    3. 查看 DMARC 报告,监控验证通过率


    总结

    SPF、DKIM、DMARC三件套是邮件发送方必须配置的基础认证。正确配置后可以显著提升邮件送达率、防止域名被冒用、保护品牌信誉。建议企业按照监控→隔离→拒绝的渐进方式部署DMARC,确保不影响正常邮件投递。