📜  IMAP协议| Internet邮件访问协议

📅  最后修改于: 2020-11-10 05:58:21             🧑  作者: Mango

IMAP协议

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

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

IMAP协议驻留在TCP / IP传输层上,这意味着它隐式使用了该协议的可靠性。一旦在IMAP客户端和IMAP服务器之间建立了TCP连接,默认情况下,IMAP服务器将侦听端口143,但是此端口号也可以更改。

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

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

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

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

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

IMAP历史和标准

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

IMAP功能

IMAP是为特定目的而设计的,它为用户访问邮箱提供了更灵活的方式。它可以在三种模式中的任何一种下运行,即联机,脱机和断开连接模式。在这些协议中,离线和断开连接模式是该协议的大多数用户所感兴趣的。

以下是IMAP协议的功能:

  • 访问和检索来自远程服务器的邮件:用户可以从远程服务器访问邮件,同时将邮件保留在远程服务器中。
  • 设置消息标记:设置消息标记,以便用户可以跟踪他已经看到的消息。
  • 管理多个邮箱:用户可以管理多个邮箱并将邮件从一个邮箱转移到另一个邮箱。用户可以为从事各种项目的人员将它们组织成各种类别。
  • 在下载之前确定信息:从邮件服务器下载邮件之前,它决定是否进行检索。
  • 下载消息的一部分:它允许您下载消息的一部分,例如mime-multi部分中的一个正文部分。当消息的短文本元素中包含大型多媒体文件时,此功能很有用。
  • 在服务器上组织邮件:对于POP3,不允许用户管理服务器上的邮件。另一方面,用户可以根据自己的要求在服务器上组织邮件,就像可以在服务器上创建,删除或重命名邮箱一样。
  • 搜索:用户可以搜索电子邮件的内容。
  • 检查电子邮件标题:用户还可以在下载之前检查电子邮件标题。
  • 创建层次结构:用户还可以创建文件夹以按层次结构组织邮件。

IMAP一般运作

  • IMAP是一种客户端服务器协议,如POP3和大多数其他TCP / IP应用程序协议。仅当IMAP4必须驻留在用户邮箱所在的服务器上时,IMAP4协议才起作用。在c中,POP3不一定需要与提供SMTP服务的物理服务器相同。因此,在使用IMAP协议的情况下,对于传入邮件的SMTP和对IMAP的检索和修改,邮箱都必须可访问。
  • IMAP使用传输控制协议(TCP)进行通信,以确保数据的传递并按顺序接收。
  • IMAP4在众所周知的端口(即端口号143)上侦听来自IMAP4客户端的传入连接请求。

让我们通过一个简单的示例了解IMAP协议。

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