📅  最后修改于: 2020-11-10 05:58:21             🧑  作者: Mango
IMAP代表Internet消息访问协议。它是一个应用程序层协议,用于接收来自邮件服务器的电子邮件。它是最常用的协议,如POP3,用于检索电子邮件。
它还遵循客户端/服务器模型。一方面,我们有一个IMAP客户端,它是在计算机上运行的进程。另一方面,我们有一个IMAP服务器,它也是在另一台计算机上运行的进程。两台计算机都通过网络连接。
IMAP协议驻留在TCP / IP传输层上,这意味着它隐式使用了该协议的可靠性。一旦在IMAP客户端和IMAP服务器之间建立了TCP连接,默认情况下,IMAP服务器将侦听端口143,但是此端口号也可以更改。
默认情况下,IMAP使用两个端口:
POP3成为访问TCP / IP邮箱的最受欢迎的协议。它实现了脱机邮件访问模型,这意味着从本地计算机上的邮件服务器中检索邮件,然后从邮件服务器中将其删除。如今,数百万的用户使用POP3协议来访问传入的邮件。由于存在脱机邮件访问模型,因此无法大量使用。在理想世界中,我们更喜欢在线模型。在在线模型中,我们需要始终连接到互联网。使用POP3进行脱机访问的最大问题是邮件已从服务器中永久删除,因此多台计算机无法访问这些邮件。解决此问题的方法是将邮件存储在远程服务器上,而不是在本地服务器上。 POP3还面临另一个问题,即数据安全性和安全性。解决此问题的方法是使用断开连接的访问模型,该模型提供了联机和脱机访问的优点。在断开访问模型中,用户可以像POP3协议中一样检索邮件以供本地使用,并且用户无需连续连接到Internet。但是,对邮箱所做的更改将在客户端和服务器之间同步。邮件保留在服务器上,以便将来其他应用程序可以访问它。当开发人员认识到这些好处时,他们就尝试实现断开连接的访问模型。这是通过使用POP3命令实现的,该命令提供了将邮件保留在服务器上的选项。这是可行的,但是仅在有限的范围内有效,例如,当检索到两条消息或将其保留在服务器上时,跟踪哪些消息是新消息还是旧消息就成为问题。因此,POP3缺少适当的断开访问模型所需的某些功能。
在1980年代中期,斯坦福大学开始了一项新协议的开发,该协议将提供一种更强大的访问用户邮箱的方式。结果就是开发了交互式邮件访问协议,该协议后来被更名为Internet邮件访问协议。
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协议。
IMAP协议将所有设备与主服务器同步。假设我们有上图所示的三种设备,台式机,移动机和笔记本电脑。如果所有这些设备都在访问同一邮箱,则它将与所有设备同步。在这里,同步意味着当一台设备打开邮件时,它将在所有其他设备上被标记为已打开,如果我们删除邮件,那么该邮件也将从所有其他设备上删除。因此,我们在所有设备之间进行了同步。在IMAP中,我们可以看到所有文件夹,例如垃圾邮件,收件箱,已发送文件夹等。我们还可以创建自己的文件夹,称为自定义文件夹,该文件夹将在所有其他设备上可见。