一封邮件是怎么从发件箱到收件箱的:投递原理与垃圾邮件判定

"我发的邮件为什么进了对方的垃圾箱?"要回答这个问题,得先搞懂一封邮件从发出到到达的完整链路。本文用快递的类比讲清 SMTP、收件服务器、IMAP/POP3、邮件头,以及 SPF/DKIM/DMARC 三个决定邮件"身份可信度"的机制。

一、快递类比

把邮件想象成快递:

  • 发件人:你的邮件客户端(Gmail、Outlook、自建邮箱);
  • 收件服务器:对方邮局(对方域名对应的邮箱服务器);
  • SMTP:运送快递的货车(发件与中转的协议);
  • IMAP/POP3:对方从邮局取件的方式(收件协议);
  • 邮件头:快递单上的寄件人、收件人、途经站点记录;
  • 垃圾邮件判定:邮局查验寄件人身份(SPF/DKIM/DMARC)后决定放行还是丢进"垃圾区"。

二、投递链路:一段一段看

  1. 发件:你在客户端写好邮件点发送,客户端把邮件交给"发件 SMTP 服务器";
  2. 发件服务器认证:发件服务器确认你是合法用户(身份验证);
  3. DNS 查询:发件服务器根据收件地址的域名(如 gmail.com),通过 DNS 查询对方的邮件服务器地址(MX 记录);
  4. SMTP 投递:发件服务器与收件服务器建立 SMTP 连接,逐条传输邮件;
  5. 收件服务器处理:收件服务器做垃圾邮件检查、病毒扫描;
  6. 存储:邮件存入收件人的邮箱;
  7. 取件:收件人用 IMAP 或 POP3 协议从服务器取到客户端。

MX 记录与 DNS 的关系,见域名 DNS 记录基础

三、发件协议与收件协议

SMTP(Simple Mail Transfer Protocol,简单邮件传输协议):负责"发"和"中转",端口常用 25/465/587。自建站要发信,就是在服务器上配置 SMTP。配置方法参考SMTP 配置指南

IMAP 与 POP3:负责"收"。

  • IMAP:邮件留在服务器上,多设备同步,已读/已删状态实时一致,推荐日常使用;
  • POP3:把邮件下载到本地并从服务器删除,适合单设备、想省空间。

四、邮件头里有什么

一封邮件的完整源码里,"邮件头"记录了关键信息:

  • From / To / Subject:寄件人、收件人、主题;
  • Date:时间;
  • Message-ID:唯一标识;
  • Received:途经的每一台服务器的记录(投递轨迹);
  • Return-Path:退信地址;
  • 认证相关头:Authentication-Results,记录 SPF/DKIM/DMARC 的验证结果。

查看方法:Gmail 里"显示原始内容",Outlook 里"查看来源"。投递轨迹就藏在 Received 里。

五、为什么被判垃圾邮件:SPF / DKIM / DMARC

收件服务器会问三个问题,每个对应一个机制:

机制 问的问题 作用
SPF "这封邮件真的是从这个 IP 发出的吗?" 在 DNS 里声明哪些 IP 允许用你的域名发信
DKIM "这封邮件有没有被篡改?" 用数字签名验证邮件正文完整性
DMARC "SPF/DKIM 都没过,怎么办?" 规定失败时的处理策略(隔离/拒绝)并收报告

三者缺一,或配置不一致,邮件就容易被判垃圾或直接被拒。这也是企业邮箱投递率低最常见的原因。如何配置,见SPF/DKIM/DMARC 配置教程

影响投递的其他因素:发信 IP 的声誉、内容里的垃圾词、图片比例过高、退信率、用户点"垃圾邮件"的比例。系统化优化投递率,参考邮件送达率优化

六、投递失败:退信与静默丢弃

邮件没有送达,通常分几种情况:

  • 硬退信(Hard Bounce):地址不存在、域名不存在,收件服务器明确退回,一般会很快收到退信通知;
  • 软退信(Soft Bounce):邮箱已满、服务器临时不可用,会稍后重试,多次失败才退信;
  • 静默丢弃(Silent Drop):最隐蔽的一种——收件服务器接受了邮件却悄悄丢弃(常见于 DMARC 策略拒绝、IP 被拉黑),发件方既收不到退信,也看不到送达。

要判断真实投递结果,看发件服务的送达日志(如 SendGrid/Mailgun 的事件记录)和邮件头里的 Authentication-Results。想系统排查退信原因,参考邮件退信原因分析

七、FAQ

Q1:我用自己服务器发信,为什么总进垃圾箱? 最常见原因是 SPF/DKIM/DMARC 没配或配错,其次是服务器 IP 声誉差(共用 IP 被滥用过)。先把三件套配齐,再谈内容。

Q2:SMTP 和 IMAP 能互相替代吗? 不能。SMTP 负责发,IMAP/POP3 负责收,两者都要配。

Q3:为什么我发出去的信对方收不到也没退信? 可能被收件服务器静默丢弃(常见于 DMARC 策略设为拒绝,或 IP 被拉黑)。查 DNS 配置、查 Authentication-Results 头。

Q4:群发营销信一定要用专业服务吗? 批量营销建议用专业邮件服务商(它们维护 IP 声誉、自动退订、合规模板),自己服务器群发很容易被整体拉黑。