IMAP协议

17 Mar 2025 | 6 分钟阅读

IMAP 代表 Internet 消息访问协议。它是一种应用层协议,用于从邮件服务器接收电子邮件。它是最常用的协议,如 POP3,用于检索电子邮件。

它也遵循客户端/服务器模型。一方面,我们有一个 IMAP 客户端,它是在计算机上运行的进程。另一方面,我们有一个 IMAP 服务器,它也是在另一台计算机上运行的进程。两台计算机通过网络连接。

IMAP Protocol

IMAP 协议位于 TCP/IP 传输层,这意味着它隐式地使用了协议的可靠性。一旦 IMAP 客户端和 IMAP 服务器之间建立 TCP 连接,IMAP 服务器默认监听端口 143,但此端口号也可以更改。

默认情况下,IMAP 使用两个端口

  • 端口 143:这是未加密的 IMAP 端口。
  • 端口 993:当 IMAP 客户端希望通过 IMAP 安全连接时使用此端口。

为什么我们应该使用 IMAP 而不是 POP3 协议?

POP3 正在成为访问 TCP/IP 邮箱的最流行协议。它实现了离线邮件访问模型,这意味着邮件从邮件服务器检索到本地计算机,然后从邮件服务器删除。如今,数百万用户使用 POP3 协议 访问收到的邮件。由于离线邮件访问模型,它不能被充分利用。在理想世界中,我们更喜欢在线模型。在在线模型中,我们需要始终连接到互联网。使用 POP3 离线访问的最大问题是邮件从服务器永久删除,因此多台计算机无法访问邮件。解决此问题的方法是将邮件存储在远程服务器而不是本地服务器上。POP3 还面临另一个问题,即数据安全和保障。解决此问题的方法是使用断开连接的访问模型,它提供了在线和离线访问的优势。在断开连接的访问模型中,用户可以像 POP3 协议一样检索邮件以供本地使用,并且用户无需持续连接到互联网。但是,对邮箱所做的更改会在客户端和服务器之间同步。邮件保留在服务器上,以便将来的不同应用程序可以访问它。当开发人员认识到这些优势时,他们尝试实现断开连接的访问模型。这是通过使用提供将邮件留在服务器上的选项的 POP3 命令来实现的。这可行,但仅在有限的范围内,例如,当邮件都被检索并留在服务器上时,跟踪哪些邮件是新邮件或旧邮件成为一个问题。因此,POP3 缺乏适当的断开连接访问模型所需的一些功能。

在 20 世纪 80 年代中期,斯坦福大学开始开发一种新协议,该协议将提供一种更强大的方式来访问用户邮箱。结果是交互式邮件访问协议的开发,该协议后来更名为 Internet 消息访问协议

IMAP 历史和标准

IMAP 的第一个正式文档化的互联网标准版本是 IMAP 版本 2,在 RFC 1064 中,并于 1988 年 7 月发布。它在 1990 年 8 月的 RFC 1176 中更新,保留了相同的版本。因此,他们创建了一个名为 IMAP3 的版本 3 的新文档。在 1991 年 2 月发布的 RFC 1203 中。然而,IMAP3 从未被市场接受,因此人们继续使用 IMAP2。后来创建了协议的扩展,称为 IMAPbis,它为 IMAP 添加了对多用途互联网邮件扩展 (MIME) 的支持。由于 MIME 的实用性,这是一个非常重要的发展。尽管如此,IMAPbis 从未作为 RFC 发布。这可能是由于与 IMAP3 相关的问题。1994 年 12 月,IMAP 版本 4,即 IMAP4,在两个 RFC 中发布,即 RFC 1730 描述主协议,RFC 1731 描述 IMAP 4 的认证机制。IMAP 4 是 IMAP 的当前版本,今天广泛使用。它仍在不断完善,其最新版本实际上称为 IMAP4rev1,并在 RFC 2060 中定义。它最近在 RFC 3501 中更新。

IMAP 功能

IMAP 旨在提供一种更灵活的用户访问邮箱方式。它可以在三种模式中的任何一种模式下运行,即在线、离线和断开连接模式。其中,离线和断开连接模式是该协议大多数用户感兴趣的。

以下是 IMAP 协议的功能

  • 从远程服务器访问和检索邮件:用户可以从远程服务器访问邮件,同时将邮件保留在远程服务器中。
  • 设置消息标志:设置消息标志,以便用户可以跟踪他已经看过的消息。
  • 管理多个邮箱:用户可以管理多个邮箱并将消息从一个邮箱传输到另一个邮箱。用户可以根据正在处理的各种项目将其组织成各种类别。
  • 下载前确定信息:它在从邮件服务器下载邮件之前决定是否检索。
  • 下载邮件的一部分:它允许您下载邮件的一部分,例如多部分 MIME 中的一个正文部分。当消息的短文本元素中有大型多媒体文件时,这可能很有用。
  • 在服务器上组织邮件:在 POP3 的情况下,用户不允许在服务器上管理邮件。另一方面,用户可以根据自己的要求在服务器上组织邮件,例如他们可以在服务器上创建、删除或重命名邮箱。
  • 搜索:用户可以搜索电子邮件的内容。
  • 检查电子邮件头:用户还可以在下载前检查电子邮件头。
  • 创建层次结构:用户还可以创建文件夹以分层组织邮件。

IMAP 通用操作

IMAP Protocol
  1. IMAP 是一种客户端-服务器协议,类似于 POP3 和大多数其他 TCP/IP 应用程序协议。IMAP4 协议仅在 IMAP4 必须驻留在用户邮箱所在的服务器上时才能运行。在 C 语言中,POP3 不一定需要提供 SMTP 服务的同一物理服务器。因此,在 IMAP 协议的情况下,邮箱必须可供传入邮件的 SMTP 和检索和修改的 IMAP 访问。
  2. IMAP 使用传输控制协议 (TCP) 进行通信,以确保数据传输和按顺序接收。
  3. IMAP4 监听一个众所周知的端口,即端口号 143,用于来自 IMAP4 客户端的传入连接请求。

让我们通过一个简单的例子来理解 IMAP 协议。

IMAP Protocol

IMAP 协议同步所有设备与主服务器。假设我们有三台设备:台式机、手机和笔记本电脑,如上图所示。如果所有这些设备都访问同一个邮箱,那么它将与所有设备同步。这里,同步意味着当一个设备打开邮件时,它将在所有其他设备中标记为已打开;如果我们删除邮件,那么邮件也将从所有其他设备中删除。因此,所有设备之间都存在同步。在 IMAP 中,我们可以看到所有文件夹,例如垃圾邮件、收件箱、已发送等。我们还可以创建自己的文件夹,称为自定义文件夹,该文件夹将在所有其他设备中可见。


下一主题POP 协议