%% # 纲要 > 主干纲要、Hint/线索/路标 # Q&A #### 已明确 #### 待明确 > 当下仍存有的疑惑 **❓<font color="#c0504d"> 有什么问题?</font>** # Buffer ## 闪念 > sudden idea ## 候选资料 > Read it later %% # 电子邮件传输过程 电子邮件的整个传输过程为: **发送方的用户代理** => **发送方的邮件服务器** => **接收方的邮件服务器** => **分发到接收方用户的邮箱** > ![image-20240101160011568|680](_attachment/02-开发笔记/07-计算机网络/应用层/电子邮件相关协议.assets/IMG-电子邮件相关协议-F1D114B70A485EEB7B21D9A3C6953ABC.png) ![[#协议总结]] <br><br> # 电子邮件系统组成 互联网上的电子邮件系统包含三个主要组成部分: - **==邮件客户端==**(也称**用户代理(user agent)**) - **==邮件服务器==(mail server)** - **==邮件相关的传输协议==** ### 邮件客户端 (用户代理) 「**邮件客户端**(用户代理)」是面向用户的**客户端软件**,**为用户提供读取、回复、发送、转发、保存和撰写邮件的功能**,同时充当了 "**SMTP 协议以及 POP3 或 IMAP 协议" 中的客户端**。 微软 Outlook,Applie Mail,基于 Web 的 Gmail、QQ 邮箱、网易邮箱,手机上的 Gmail 客户端、QQ 邮箱客户端等都属于**邮件客户端**。 用户在「邮件客户端」上操作发送出的邮件,实际上会**由邮件客户端发往 "该客户端提供商" 的「邮件服务器」**,再由该邮件服务器转发到 "**目标邮箱提供商的邮件服务器**"。 ### 邮件服务器 「**==邮件服务器==**」是 **电子邮箱提供方的服务器**,负责处理、存储和转发电子邮件。 每台「**邮件服务器**」上既运行**SMTP 客户端**(发送邮件到其它邮件服务器),也运行**SMTP 服务器端**(接收来自其它邮件服务器的邮件),同时也**作为 POP3 或 IMAP 协议的服务器端**。 邮件服务器提供两个主要组件: - **邮件传输代理(MTA)**:MTA 负责接收来自发件人的邮件,并决定如何将邮件路由到正确的收件人邮箱。MTA 使用 **SMTP 协议来发送和接收邮件**。 - **邮件存储代理(MDA)**:MDA 负责将接收到的邮件存储在服务器上,直到收件人准备好读取它。它通常与邮件检索代理(MRA)一起工作,后者**允许用户通过协议如 POP3 或 IMAP 访问他们的邮件**。 常见的 MTA 软件包括 Sendmail、Postfix 和 Exim。 常见的 MDA 和 MRA 软件为 Dovecot 和 Courier。 ### 邮件传输协议 见下文。 <br><br><br> # 电子邮件相关协议 ### 协议总结 共涉及三种协议: - SMTP 协议用于 **"发送方的邮件==客户端==" => "==发送方==的邮件==服务器=="** => "**"==接收方==的邮件==服务器=="** " - POP3 协议用于 "**接收方的邮件客户端**" 从 "**接收方的邮件服务器**" **下载邮件**(仅下载) - IMAP 协议用于 "**接收方的邮件客户端**" 与 "**接收方的邮件服务器**" 的**双向同步通信**(下载内容、同步本地对邮件的操作—删除移动标记等) ### SMTP 协议 > **SMTP 协议**(**Simple Mail Transfer Protocol**) — **简单邮件传输协议** 用于 **==发送邮件==** 的协议,用于以下传输过程: **"发送方的邮件==客户端==" => "==发送方==的邮件==服务器=="** => **"==接收方==的邮件==服务器=="** ### POP3 协议 > **POP3 协议**(Post Office Protocol version 3) — **邮局协议第三版** POP3 协议用于**电子邮件客户端==从邮件服务器上下载邮件==**。 邮件下载到客户端后,**在客户端上对邮件的本地操作(如移动/删除邮件、标记已读等)不会反馈到服务器上**。 例如,用户在**邮件客户端**上通过 POP3 协议从 「邮件服务器」 获取了邮箱中的 2 封邮件,随后用户在邮件客户端上删除这两份邮件,然而「**邮件服务器**」中仍然保存着这 2 封邮件数据。 ### IMAP 协议 >**IMAP 协议** (Internet Message Access Protocol) — **互联网邮件访问协议** IMAP 协议用于 **"电子邮件客户端" 与 "邮件服务器" 的==同步通信==**。 在 IMAP 协议下,邮件内容主要保存在「**邮件服务器**」上而不是本地(尽管也会在本地缓存部分邮件内容以加速响应并提供离线查看): - IMAP 客户端**只从服务器下载邮件的头信息**(例如,发件人、收件人、主题等),而不是整个邮件内容。**直到用户打开(或预览)邮件**时,客户端才会**从服务器下载完整的邮件内容**。 - 用户 **==在邮件客户端上对邮件进行的操作(移动、删除、标记已读等)都会同步到邮件服务器上==**,邮件服务器将对其存储的邮件**同步**这些操作 <br><br> ### SMTP 发送服务器与 IMAP 接收服务器的区别 #### SMTP 发送服务器 SMTP 发送服务器负责发送电子邮件,使用电子邮件客户端时需要配置了该服务器才能在电子邮件客户端里以"自己的邮箱地址" 向别人发送邮件,SMTP 发送服务器的地址通常即为**用户所用邮箱对应的邮件服务器**。 当用户从电子邮件客户端发送邮件时,邮件会被发送到该 SMTP 服务器,该 SMTP 服务器再将邮件**发送到收件人的邮箱服务器**。 #### IMAP 接收服务器 IMAP 服务器用于接收和管理电子邮件,使用电子邮件客户端时需要配置了该服务器**才能从客户端里查看自己收到的电子邮件**。 当用户使用电子邮件客户端(如 Outlook、Gmail 等)时,**IMAP 服务器允许用户查看和管理邮箱中的邮件**,而不是将邮件下载到本地设备。IMAP 保持邮件在服务器上,这意味着你可以从任何地方、任何设备访问你的邮件,并且你的邮件、文件夹和阅读状态在所有设备上都是同步的。 <br><br><br> # 电子邮件客户端配置 以`outlook`为例,需要填写的通常包括: SMTP 用户名与密码、SMTP 发送服务器及端口、IMAP 密码、IMAP 接收服务器及端口: - SMTP 和 IMAP 服务器地址通常即为邮箱地址加上`smtp.` 或 `imap.` 前缀。 - 例如,华工邮箱的 SMTP 发送服务器为`smtp.mail.scut.edu.cn`, IMAP 接收服务器地址为 `imap.mail.scut.edu.cn`。 - SMTP 相关的用户信息:用于**发送电子邮件时**的验证用户身份 - SMTP 用户名:完整电子邮件地址,或者**去掉邮箱后缀的用户名** - SMTP 密码:即**电子邮件账户的登录密码** - IMAP 相关的用户信息:用于**通过 IMAP 协议读取/操作用户个人邮箱及邮件时的身份验证** - IMAP 密码:即**电子邮件账户的登录密码** - 当设置 Outlook 以接收电子邮件时,它会使用这个密码与邮件服务器通信,确保您有权查看 <br><br><br> # 参考资料 # Footnotes