IMAP(Internet Message Access Protocol, 交互邮件访问协议)简介

1、简介

      Internet Mail Access Protocol(缩写为IMAP,以前称作交互邮件访问协议(interactive mail access protocol))IMAP是斯坦福大学在1986年开发的研发的一种邮件获取协议。它的主要作用是邮件客户端(例如MS Outlook Express)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。当前的权威定义是RFC3501。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。


2、特点

     一些只在IMAP中存在的重要方面包括:
    1)支持连接和断开两种操作模式。当使用POP3时,客户端只会连接在服务器上一段的时间,直到它下载完所有新信息,客户端即断开连接。在IMAP中,只要用户界面是活动的和下载信息内容是需要的,客户端就会一直连接在服务器上。对于有很多或者很大邮件的用户来说,使用IMAP4模式可以获得更快的响应时间。
    支持多个客户同时连接到一个邮箱。POP3协议假定邮箱当前的连接是唯一的连接。相反,IMAP4协议允许多个用户同时访问邮箱同时提供一种机制让客户能够感知其他当前连接到这个邮箱的用户所做的操作。
    2)支持访问消息中的MIME部分和部分获取。几乎所有的Internet 邮件都是以MIME格式传输的。MIME允许消息包含一个树型结构,这个树型结构的叶子节点都是单一内容类型而非叶子节点都是多块类型的组合。IMAP4协议允许客户端获取任何独立的MIME部分和获取信息的一部分或者全部。这些机制使得用户无需下载附件就可以浏览消息内容或者在获取内容的同时浏览。
    3)支持在服务器保留消息状态信息。通过使用在IMAP4协议中定义的标志客户端可以跟踪消息状态,例如邮件是否被读取,回复,或者删除。这些标识存储在服务器,所以多个客户在不同时间访问一个邮箱可以感知其他用户所做的操作。
    4)支持在服务器上访问多个邮箱。IMAP4客户端可以在服务器上创建,重新命名,或删除邮箱(通常以文件夹形式显现给用户)。支持多个邮箱还允许服务器提供对于共享和公共文件夹的访问。
    5)支持服务器端搜索。IMAP4提供了一种机制给客户使客户可以要求服务器搜索符合多个标准的信息。在这种机制下客户端就无需下载邮箱中所有信息来完成这些搜索。
    6)支持一个定义良好的扩展机制。吸取早期Internet协议的经验,IMAP的扩展定义了一个明确的机制。很多对于原始协议的扩展已被提议并广泛使用。无论使用POP3还是IMAP4来获取消息,客户端使用SMTP协议来发送。邮件客户可能是POP客户端或者IMAP客户端,但都会使用SMTP。
     不像大多数旧的Internet协议,IMAP4生来支持加密注册机制。IMAP4中也支持明文传输密码。因为加密机制的使用需要客户端和服务器双方的一致,明文密码的使用是在在一些客户端和服务器类型不同的情况下(例如Microsoft Windows客户端和非Windows服务器)。使用SSL也可以对IMAP4的通信进行加密,通过将在SSL上的IMAP4通信通过993端口传输或者在IMAP4线程建立的时候声明“”“STARTTLS”。


3、状态 
     IMAP协议的几种状态:
1)Not Authenticated State: 非认证状态
    这个状态是还没有进行鉴权的过程,就是还没有输入用户名与密码进行校验的状态,这种 状态下你不能对自己数据进行操作,例如你想看一下文件夹列表,或是某封邮件等。
2)Authenticated State: 认证状态
    这个状态是已经输入了用户名密码并且已经得到服务器验证通过,此状态下才能对你的数据进行操作,这也比较好理解。

3)selected State: 选择状态
    这个状态的前提条件是"认证状态",这个状态可以理解成是对数据的直接操作,例如:选择一封邮件,将一封邮件设置已读等。

4、命令

     指令          功能
     CAPABILITY 服务器响应能力描述,此指令个人理解是当前邮件服务器的能力。
     NOOP 与服务器保持连接,可以用来新邮件或者消息状态更新。
     LOGOUT 终端服务器连接
 
     STARTTLS 与服务器使用TLS进行交互
     AUTHENTICATE 与服务器的认证机制
     LOGIN 鉴权登陆,输入用户名与密码
     SELECT 选择文件夹
     EXAMINE 选择文件夹只读方式
     CREATE 创建一个文件夹
     DELETE 删除一个文件夹
     RENAME 重命名一个文件  www.2cto.com  
     SUBSCRIBE 订阅指定的邮箱地址
     UNSUBSCRIBE 取消订阅
     LIST 返回详细的文件夹列表
     LSUB 返回订阅的邮箱地址列表
 
     STATUS 请求返回指定邮箱文件夹的状态
     APPEND 追加一个状态,例如可以保存一封新的邮件
     CHECK 检查当前服务器状态(例如:磁盘,内存等)
     CLOSE 永久删除所有消息
     EXPUNGE 永久删除所有消息,与CLOSE不同的是,将返回每个消息标识
     SEARCH 类似linux系统find命令,功能很强大可以按照不同条件搜索邮件
     FETCH 检索与消息相关数据,例如:获取正文
     STORE 改变与消息相关数据,例如:设置邮箱已读、删除状态等
     COPY 拷贝指定的消息
     UID 返回UID列表用于fetch


参考文献:百度百科和维基百科    
              

你可能感兴趣的:(网络学习)