一封邮件的四段接力
邮件系统由四个角色接力完成投递:MUA 是用户看得见的客户端界面,MSA 负责接收用户提交(常见 587),MTA 在服务器之间用 SMTP 转发(25),MDA 把邮件投进用户信箱,用户再用 IMAP 或 POP3 取信。排查邮件问题时,先判断卡在哪一段,再去看那一段的日志与 DNS 记录,比在客户端反复试配高效得多。
四个角色
| MUA | Mail User Agent:Outlook、Thunderbird、webmail 等客户端界面 |
|---|---|
| MSA | Mail Submission Agent:接收用户提交,常用 587 端口配合 STARTTLS |
| MTA | Mail Transfer Agent:服务器之间中转,如 Postfix、Exchange、Sendmail,走 25 端口 |
| MDA | Mail Delivery Agent:把邮件投进用户信箱,如 Dovecot 或 LMTP 投递 |
| 取信协议 | IMAP 143/993 与 POP3 110/995,和发信协议彼此独立 |
典型使用场景
- 排查「能收不能发」:多数是发件 SMTP 服务器、端口或认证方式没配对
- 排查「收不到外部来信」:检查 MX 记录、对方退信、垃圾箱与灰名单策略
- 排查「发出后进垃圾箱」:对比 SPF、DKIM、DMARC 记录与发信 IP 信誉
- 自建邮件系统:规划 MTA 队列、反垃圾、TLS 与端口放行策略
- 配置客户端:收件与发件服务器分别填写,端口与加密方式必须匹配
典型链路与 DNS 参与
典型链路与 DNS 参与
发件人 MUA --提交(SMTP 587/465)--> MSA/MTA
# 提交段要做身份认证,465 是隐式 TLS,587 通常配 STARTTLS
MTA --SMTP 25--> 对方 MTA
# 这一段靠 MX 记录找到对方收信服务器,靠 SPF/DKIM/DMARC 判断身份
对方 MTA --LMTP/本地投递--> MDA --> 用户信箱
用户 MUA <--IMAP 993 / POP3 995-- 信箱四段接力与常见故障
| 阶段 | 关键点 | 常见故障 |
|---|---|---|
| 提交 MUA 到 MSA | 587 加 STARTTLS 或 465 隐式 TLS,需要认证 | 认证失败、端口被运营商或防火墙封禁 |
| 传输 MTA 到 MTA | 25 端口、MX 记录、SPF 与 DKIM 与 DMARC | 连接超时、被策略拒收、投进垃圾箱 |
| 投递 MTA 到 MDA | LMTP 或本地投递、信箱配额 | 信箱已满、磁盘空间不足、被反垃圾直接丢弃 |
| 读取 MUA 到 IMAP | 993 或 995 加密连接 | 登录失败、证书不受信任、同步缓慢 |
退信里带的增强状态码是最有价值的线索,例如 5.1.1 表示收件人不存在、5.7.1 表示被策略拒绝;先看退信正文第一行与最后一行,往往直接给出责任方。