+++
title = "电子邮件是如何工作的:POP3/IMAP/SMTP"
date = 2024-02-21

[taxonomies]
tags = ["网络艺术"]
+++

前言 POP3、IMAP 和 SMTP 是用于电子邮件传输的常见协议和服务,这些协议共同构成了电子邮件系统的基础，允许用户接收、发送和管理电子邮件。

<!-- more -->

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 协议的作用。这些技术和协议共同构成了电子邮件系统的基础架构，保障了邮件的传输安全性和可靠性。

