问题背景
公司使用自建 Postfix 邮件服务器(mail.company.com)通过 SMTP 协议发送各类通知邮件:用户注册验证码、审批提醒、周报总结、监控告警等,日均发信量约 2 万封。收件人包括公司内部员工(@company.com)和外部合作伙伴(多数使用腾讯企业邮箱 @partner.com)。
故障现象
5 月 25 日中午,业务方反馈用户注册验证码邮件大量丢失——十几分钟内注册了 50 个用户,只有不到 15 个收到了验证码邮件。邮件队列查看:
|
|
退信原因:550 Mail is rejected by users——腾讯企业邮箱直接拒绝了投递。到下午 2:00,退信率达到了 60%(347 封排队中被拒)。
排查过程
第一步:检查退信详情
抓取完整的 SMTP 会话日志:
|
|
访问腾讯企业邮箱给出的帮助链接,提示可能原因:
- 发信 IP 信誉过低
- 发信域未配置 SPF 记录
- 短时间内发信量过大触发流控
第二步:逐一核查三条线索
DNS 记录检查:
|
|
邮件域 company.com 完全没有 SPF、DKIM、DMARC 记录。对于腾讯企业邮箱这种大型邮件服务商来说,缺乏这三项基本认证的邮件会被严重降权。
发信频率检查:
|
|
验证码邮件在中午时间段有集中爆发(饭点用户集中注册),1 小时内向同一收件域发送了超过 1000 封邮件——触发了腾讯的每小时发信频率限制。
IP 信誉检查:
使用 MXToolbox 查询发信 IP 203.x.x.x 的黑名单状态,发现被列在 2 个 RBL(实时黑名单)中——原因是该 IP 之前被用于发送过未订阅的营销邮件。
解决方案
紧急处理
- 配置 SPF 记录(DNS 添加):
|
|
- 配置 DKIM(Postfix 端):
|
|
- 配置 DMARC(DNS 添加):
|
|
- 配置 Postfix 速率限制:
|
|
- 清理 IP 信誉:向各 RBL 提交移除申请。
长期优化
- 将验证码等高时效邮件改用短信/App 推送,降低邮件频率
- 配置 Postfix 的发信队列优先级,事务通知可延迟发送
- 监控发信退信率和队列积压
根因分析
直接原因:自建邮件服务器未配置 SPF/DKIM/DMARC,腾讯企业邮箱将邮件判为低信誉,加上短时间高频发信触发流控限制直接被拒。
深层原因:邮件基础设施在上线时跳过了邮件认证的标准配置,在业务规模扩大后这些问题被放大;同时业务层缺乏对邮件发送的节流控制。
预防措施
- 邮件认证三件套:SPF + DKIM + DMARC 是邮件服务器的标配,必须上线即配置
- 发信频率监控:按目标域统计发信频率,接近阈值时告警
- 退信率告警:退信率 >10% 立即告警
- IP 信誉定期检测:每月查询 RBL 状态,及时处理
- 邮件发送策略分层:验证码等重要邮件走高优先级通道,营销/通知类走低优先级通道
总结
SPF、DKIM、DMARC 这三条 DNS 记录加起来不超过 500 字节,但缺失它们就能让 60% 的邮件石沉大海。自建邮件服务器最大的挑战不是搭建 Postfix,而是让你的邮件被接收方信任。如果连基本的邮件认证都不做,从接收方的视角看,你的邮件和垃圾邮件只有一步之遥。