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