TOC

电子邮件是如何传输的?

假设:

  1. A 要发一封邮件给 B、C。
  2. A 的地址是 aaa@163.com,B 的邮箱地址是 bbb@163.com,C 的邮箱地址是 ccc@qq.com

那么:

  1. A 先在自己的客户端 Thunderbird 上(WebMail 后面是怎么处理的就取决于各个邮件服务提供商了)将邮件编辑并发送出去。
  2. 邮件经过 SMTP(需要验证身份),到了网易的邮件发送服务 smtp.163.com
  3. 网易邮件发送服务检查了两个收信地址,发现:
    B 地址所在域和自己一致,就直接投给了自己的用户邮箱
    C 地址所在域和自己不一致,就检查 C 域的 MX 记录,得到 mx.qq.com,然后将邮件投递过去(SMTP)。
  4. B 通过客户端 Foxmail,从配置的 pop3.163.com 下载了邮件(POP3),手机自带的邮件客户端配的 imap.163.com,那就走 IMAP 协议。
  5. QQ 的 mx 服务器是没有身份验证的,但是会通过一系列手段验证 163 的连接是可靠的,才会接收这封邮件。
  6. QQ 收到邮件之后,将邮件投进 C 的收件箱。
  7. C 则在 Web 上浏览邮件,这时候 WebMail 通过某种技术,从 QQ 邮箱服务拉取到了邮件列表,C 就发现这封邮件,然后点开看到了 WebMail 获取到的邮件内容。
  QQ 163  
SMTP smtp.qq.com 465/587 smtp.163.com 25, 465/587
POP3 pop.qq.com 995 pop.163.com 110, 995
IMAP imap.qq.com 993 imap.163.com 143, 993

玩概念

可以看到各种 MxA:

  • MUA: user 用户代理,也就是邮件客户端
  • WebMail 或者 Foxmail、Thunderbird 这样的工具。
  • MSA: submission 发送代理
  • 比如 smtp.163.com 这样的收信服务
  • MTA: transfer 传送代理,或者说交换代理,又叫 Mail Exchanger 或 MX Host
  • 接收别的邮件服务转过来的邮件
  • 和 MSA 的区别是没有身份认证,但是有对投递者(服务器)身份信息的检验
  • Postfix 服务器
  • MDA: delivery 投递代理
  • 主要是对 MSA/MTA 收到的邮件进行过滤处理:
    • 检查和过滤垃圾邮件、病毒邮件等,
    • 然后外部地址的邮件就交换出去,
    • 内部地址的邮件就存储起来
  • MRA: retrieval,receive 接收/检索代理
  • POP,IMAP 协议
  • Dovecot 服务器