+++ title = "电子邮件是如何工作的:POP3/IMAP/SMTP" date = 2024-02-21 [taxonomies] tags = ["Tech","Mail"] +++ 前言 POP3、IMAP 和 SMTP 是用于电子邮件传输的常见协议和服务,这些协议共同构成了电子邮件系统的基础,允许用户接收、发送和管理电子邮件。 1. **POP3(邮局协议版本3)**:POP3 是一种用于接收电子邮件的协议。当你使用 POP3 时,电子邮件会从服务器下载到你的设备上,并且通常会从服务器上删除。这意味着邮件只存在于你的设备上,而不再保留在服务器上。POP3 通常用于单一设备或者设备上少量的邮件存储需求。 2. **IMAP(互联网邮件访问协议)**:IMAP 也是一种用于接收电子邮件的协议,但它与 POP3 不同的是,IMAP 允许邮件保留在服务器上,并且同步到多个设备上。这意味着无论你使用哪个设备访问邮件,都能看到同样的邮件状态,包括已读、未读、已删除等。IMAP 适用于需要在多个设备之间同步邮件的情况,例如在手机、平板电脑和台式电脑之间。 3. **SMTP(简单邮件传输协议)**:SMTP 是用于发送电子邮件的协议。当你发送一封电子邮件时,你的邮件客户端会使用 SMTP 协议将邮件发送到电子邮件服务器。SMTP 负责将邮件从发送者的电子邮件客户端传送到接收者的邮件服务器。SMTP 是一个推送协议,它将邮件推送给服务器,而不是拉取邮件。 这是每个协议的简要技术原理: ## **POP3(邮局协议版本3)** - 客户端连接到邮件服务器上的 POP3 端口(通常是 110 端口)。 - 客户端发送身份验证信息(通常是用户名和密码)以登录到邮箱。 - 一旦登录成功,客户端可以请求收件箱中的邮件列表。 - 客户端可以选择下载邮件到本地设备。 - 下载的邮件通常从服务器上删除,但可以根据设置保留一份副本。 - 客户端可以选择在下载后删除邮件,或者在稍后删除它们。 ## **IMAP(互联网邮件访问协议)**: - 客户端连接到邮件服务器上的 IMAP 端口(通常是 143 端口)。 - 客户端发送身份验证信息(通常是用户名和密码)以登录到邮箱。 - 一旦登录成功,客户端可以请求收件箱中的邮件列表,以及邮件的状态信息(如已读、未读、已删除等)。 - 客户端可以选择下载完整的邮件或邮件的部分内容到本地设备,同时保留邮件在服务器上的副本。 - 客户端对邮件的操作(如标记为已读、移动到文件夹等)将反映在服务器上,从而在其他设备上同步。 ## **SMTP(简单邮件传输协议)**: - 客户端连接到邮件服务器上的 SMTP 端口(通常是 25 端口)。 - 客户端发送邮件内容和邮件头信息(如发件人、收件人、主题等)给服务器。 - 服务器接受邮件,并将其转发到接收者的邮件服务器。 - 接收者的邮件服务器接收邮件,并将其存储在相应的收件人邮箱中。 - SMTP 是一个简单的推送协议,它负责将邮件从发送方传送到接收方,但不涉及接收方对邮件的确认或响应。 ## **它们的区别和共同点:** **区别:** **功能:** - POP3 主要用于从邮件服务器上下载邮件到本地设备,通常会将邮件从服务器上删除。 - IMAP 允许用户在多个设备之间同步邮件状态,并且邮件保留在服务器上。 - SMTP 用于发送电子邮件。 **邮件管理:** - POP3 在客户端下载邮件后通常会将邮件从服务器上删除,因此邮件只存在于本地设备上。 - IMAP 允许邮件在多个设备之间同步,因为邮件保留在服务器上。 - SMTP 不管理邮件存储,它只是负责将邮件从发送方传送到接收方。 **端口号:** - POP3 默认端口号是 110。 - IMAP 默认端口号是 143。 - SMTP 默认端口号是 25。 **操作方式:** - POP3 是拉取协议,客户端需要主动连接到服务器并拉取邮件。 - IMAP 是双向同步协议,客户端与服务器之间进行交互,可以同步邮件状态。 - SMTP 是推送协议,用于将邮件从发送方传送到接收方。 **共同点:** - **用途:**:它们都是用于电子邮件传输的标准协议。 - **与邮件服务器的通信:**:它们都涉及客户端与邮件服务器之间的通信。 - **身份验证:**:它们都需要用户身份验证来访问邮箱。 ## **一次完整的邮件通信过程** **发送方(发件人):** - **撰写邮件:** 发件人使用邮件客户端(如Outlook、Gmail等)撰写邮件,并填写收件人的电子邮件地址、主题和邮件内容。 - **SPF 检查:** 发送邮件服务器可能会执行 SPF(Sender Policy Framework)检查。它查询发件人域名的 DNS 记录,以确认发送邮件的服务器是否被授权发送邮件。 - **DKIM 签名:** 发送邮件服务器对邮件进行 DKIM(DomainKeys Identified Mail)签名。它使用发件人域名的私钥对邮件进行加密签名,以确保邮件内容在传输过程中不被篡改。 - **SMTP 发送邮件:** 发送邮件服务器使用 SMTP(简单邮件传输协议)将邮件发送到接收邮件服务器。SMTP 服务器与接收邮件服务器之间建立连接,并通过指定的端口(通常是 25 端口)传输邮件。 **接收方(收件人):** - **SMTP 接收邮件:** 接收邮件服务器接收到发送方发送的邮件。SMTP 协议负责将邮件从发送方传输到接收方。 - **SPF 验证:** 接收邮件服务器执行 SPF 验证,检查发送方服务器的 IP 地址是否在发件人域名的 SPF 记录中被授权发送邮件。 - **DKIM 验证:** 接收邮件服务器对收到的邮件执行 DKIM 验证。它使用发件人域名的公钥来验证邮件的 DKIM 签名,以确保邮件内容的完整性和真实性。 - **DMARC 检查:** 如果接收邮件服务器支持 DMARC(Domain-based Message Authentication, Reporting, and Conformance),它会执行 DMARC 检查。DMARC 结合了 SPF 和 DKIM,允许域名所有者指定如何处理未通过验证的邮件。 - **投递邮件到邮箱:** 如果邮件通过了所有的验证步骤,并且没有被识别为垃圾邮件,接收邮件服务器将把邮件投递到收件人的邮箱中。 **邮件获取(收件人):** - **POP3 获取邮件(可选):** 收件人可以使用 POP3(邮局协议版本3)从邮件服务器上下载邮件到本地设备。POP3 客户端通过指定的端口(通常是 110 端口)连接到邮件服务器,并下载邮件到本地设备上。根据设置,邮件可能会从服务器上删除。 - **IMAP 获取邮件(可选):** 收件人可以使用 IMAP(互联网邮件访问协议)从邮件服务器上获取邮件。IMAP 允许邮件保留在服务器上,并且在多个设备之间同步邮件状态。IMAP 客户端通过指定的端口(通常是 143 端口)连接到邮件服务器,并获取邮件列表和邮件内容。 这是一个完整的双向邮件通信过程,包括了 SPF、DKIM、DMARC,以及 POP3、IMAP、SMTP 协议的作用。这些技术和协议共同构成了电子邮件系统的基础架构,保障了邮件的传输安全性和可靠性。