首页> 文章 > 详情

企业邮箱总进垃圾箱?SPF和DKIM设置全解析与实操指南

2026-04-10星瀚

SPF与DKIM:终结企业邮件进入垃圾箱的技术指南

SPF和DKIM是两种关键的电子邮件身份验证协议,通过验证发件服务器的IP地址(SPF)和邮件内容的数字签名(DKIM),共同确保邮件来源的真实性,是解决企业邮件被误判为垃圾邮件的核心方案。

为何SPF与DKIM至关重要

邮件服务商的垃圾邮件过滤器高度依赖发送方信誉。缺乏有效身份验证的邮件,即使内容合法,也极易被标记为垃圾邮件。这直接导致合同确认、密码重置、订单通知等重要商务邮件无法送达,影响业务连续性。

SPF:验证“谁有权从这个地址发信”

SPF记录发布在你的域名DNS中,它明确列出了所有被授权使用你的域名发送邮件的服务器IP地址。当收件方服务器收到邮件时,会查询该记录,核对发件IP是否在授权列表中。

  • 案例解析:一家SaaS公司的客户注册确认邮件经常进入垃圾箱。技术团队排查发现,其营销系统(使用第三方邮件服务商A)和交易系统(使用服务器B自建发信)均使用公司域名发送邮件,但DNS中仅配置了服务商A的SPF记录。当服务器B发出的邮件被接收方校验时,因其IP未被授权而验证失败。将服务器B的IP加入SPF记录后,交易邮件的送达率从78%提升至98%。

DKIM:验证“邮件在传输中未被篡改”

DKIM为每封外发邮件添加一个基于加密算法的数字签名。签名私钥由发件方保管,对应的公钥则发布在DNS中。收件方服务器使用公钥解密签名,并与邮件内容进行比对,若一致则证明邮件来源真实且内容完整。

  • 案例解析:某咨询机构的新闻简报链接点击率异常低。分析发现,部分邮件客户端(如Outlook)因其邮件在传输中被中间代理服务器轻微修改了HTML格式,导致DKIM签名验证失败,邮件被降权处理甚至直接放入垃圾文件夹。他们为邮件服务启用了更严格的DKIM签名策略(如对邮件正文和标题都进行签名),并确保所有邮件中继服务器都支持签名传递,此后简报的收件箱到达率稳定在95%以上。

具体配置与检查步骤

配置这些记录需要对域名的DNS进行管理。以下是标准操作流程:

1. 配置SPF记录

SPF记录是一条TXT类型的DNS记录。

  1. 梳理发信源:列出所有使用你公司域名发送邮件的服务,包括:公司自建邮件服务器、第三方邮件营销平台(如Mailchimp)、CRM系统(如Salesforce)、事务性邮件服务(如SendGrid)、甚至办公自动化工具(如Zapier)。
  2. 构建SPF记录:记录值通常以 v=spf1 开头。使用以下机制指定授权服务器:
    • include:spf.protection.outlook.com (包含微软365的授权服务器)
    • ip4:203.0.113.1 (授权单个IP)
    • a:mail.yourdomain.com (授权域名对应的A记录IP)
    • mx (授权域名MX记录指向的服务器)
    • ~all-all-all表示“仅允许上述列表中的服务器发信,其他全部拒绝”;~all表示“软失败”,非授权服务器发信可能被接受但标记可疑。建议从 ~all 开始测试。
  3. 发布记录:将构建好的完整SPF字符串(如 v=spf1 include:spf.example.com include:_spf.google.com ~all)作为一条TXT记录添加到你的域名DNS中。

2. 部署DKIM签名

DKIM配置涉及在发信服务器和DNS两端操作。

  1. 在发信服务中启用DKIM:登录你的邮件服务器或第三方邮件服务商后台,找到DKIM设置选项。系统通常会生成一对密钥(私钥和公钥),或让你提供一个“选择器”(selector)名称,如 s1google
  2. 发布DKIM公钥到DNS:服务商会提供一串长长的公钥文本。你需要以以下格式创建一条DNS的TXT记录:
    • 记录名[selector]._domainkey.yourdomain.com (将[selector]替换为第一步设置的选择器)
    • 记录值v=DKIM1; k=rsa; p=[你的公钥内容]
  3. 测试签名:使用服务商提供的工具或发送测试邮件到 check-auth@verifier.port25.com 等验证服务,确认DKIM签名生效且通过验证。

3. 定期检查与维护

配置并非一劳永逸,需要定期审计。

  • SPF记录检查:使用在线SPF检查工具。重点关注SPF记录是否超过10次DNS查询限制(过多的include会导致此问题),以及是否包含不再使用的旧服务商。某在线零售品牌曾因SPF记录包含已废弃的邮件服务商,导致记录超限,所有新服务的邮件均验证失败。
  • DKIM密钥轮换:出于安全最佳实践,应每6-12个月轮换一次DKIM密钥。在DNS中发布新密钥并确保旧密钥(可暂时保留)和新密钥同时有效一段时间后,再停用旧密钥。
  • 监控送达率:关注邮件服务商后台的送达率、打开率报表。送达率的突然下降往往是身份验证出现问题的最直接信号。

常见误区与风险规避

  • 误区一:SPF和DKIM二选一:两者是互补关系。SPF验证服务器,DKIM验证邮件内容和发件域。同时部署能提供最可靠的验证。DMARC协议正是基于这两者的报告来制定策略。
  • 误区二:SPF记录中使用+all+all意味着允许任何IP使用你的域名发信,这完全破坏了SPF的安全意义,绝对禁止使用。
  • 风险:配置错误导致邮件中断:错误的SPF -all策略或错误的DKIM公钥会直接导致所有外发邮件被拒收。务必先在测试环境或对少量非关键邮件进行验证,并使用~all软失败策略作为初始配置。
  • 忽略子域:攻击者常利用未受保护的子域进行钓鱼。应为根域(yourdomain.com)和常用子域(如mail.yourdomain.comnews.yourdomain.com)分别配置SPF和DKIM。