邮件是如何发送给收件人的?
简单的说
你的邮箱是sender@163.com,收件人的邮箱是recipient@gmail.com,现在你要给他发邮件:
- 打开你的 Foxmail 邮件客户端,写好邮件,填上收件人地址,点击「发送」;
- 此时 Foxmail 会将邮件先发送到你所在的邮件服务器上,这里是 mail.163.com 服务器;
- 然后,邮件服务器 mail.163.com 将邮件发送到收件人所在的邮件服务器,这里是 mail.gmail.com 服务器;
- 在邮件服务器 mail.gmail.com 收到邮件后,将邮件存储在起来,等待收件人来收取邮件;
- 收件人打开自己的邮件客户端(Foxmail、Thunderbird 等等),到 mail.google.com 上拉取邮件;
上述过程概括起来就是:
- 发件人,使用邮件客户端,将邮件发送到发件人所在的邮件服务器;
- 发件人所在的服务器,将邮件发送到收件人所在的服务器;
- 收件人,使用邮件客户端,到自己所在的邮件服务器上收取邮件;
如下图所示:
复杂点说就是…
这并不是最复杂的,上图只涉及了邮件发送中的一部分角色;
发送邮件中的各种角色
邮件用户代理(MUA, Mail User Agent)
常用的客户端,比如 Foxmial、Thunderbird 等等,都是邮件用户代理;
邮件传输代理(MTA, Mail Transfer Agent)
由于接收邮件的服务器,有时候也称为「邮件中继(Mail Relay)」
邮件投递代理(MDA, Mail Delivery Agent)
邮件传递代理是一种计算机软件组件,负责将电子邮件传递到本地收件人的邮箱。它也被称为本地传递代理(LDA);
在因特网邮件体系结构中,通过处理来自 MTA 的消息,并将邮件存储到接收者的环境(通常是“邮箱”)中来实现本地消息传递;
许多邮件处理软件产品将多个 MDA 与 MTA 组件捆绑在一起;
邮件提交代理(MSA, Mail Submmission Agent)
Wikipedia/Message submission agent
收取 MUA 发来的邮件,并与 MTA 合作。大多数 MTA 已经包含了 MSA 的功能,但也有写软件专门提供 MSA 功能;
邮件访问代理(MAA, Mail Access Agent)
「Application Layer (email services) – Message Access Agents (POP and IMAP)」
用于将用户连接到系统邮件库,使用 POP 或 IMAP 协议收取邮件。现在很多的邮件客户端都提供了 MAA 的功能;
完整的邮件发送事件序列
参考文献
电子邮件收发协议总结
电子邮件系统组成的 5 部分:MTA,MSA,MUA,MDA,MAA
基础邮件原理(MUA,MTA,MDA)