IMAP协议交互:
(1)服务器通过侦听TCP端口143开始IMAP服务;
(2)当客户机需要使用服务时,它将与服务器主机建立TCP连接;
(3)建立连接后,服务器将返回一行用回车换行终结的问候信息,如:
S: * OK IMAP4 Server(IMail 6.00)
或者 S: * PREAUTH IMAP4rev1 server logged in as Smith
连接启动时,服务器问候信息有三种状态:
* OK 表示连接成功,需要进一步的LOGIN命令;
* PREAUTH 表示已经通过外部手段鉴别了连接,因此,不需要LONIN命令;
* BYE 表示服务器将关闭连接。
以上三个字符串是协议规定,且是IMAP自有的状态字。
(4)接着客户端和IMAP服务器相互(分别)交换命令和响应,一直持续到连接终止。
IMAP4的命令以“标号tag”开头,加相应的命令,后面加上一个或多个参数,以CRLF结尾,例如 tag可以是A01、A02;
服务器的应答是对应相应标签的处理结果(OK或NO),紧接着的是它附加信息,也以CRLF结尾。
服务器应答有:
OK应答: 表示服务器发来的一条信息,若带上tag,表明有关命令成功完成;
NO应答: 表示服务器发来的一条操作错误邮件,如果有tag,表明有关命令没有成功,无tag的格式表示警告,命令仍可能成功完成;
BAD应答:表示服务器发来的一条错误邮件,如果有tag,报告客户命令中协议级别的错误,无tag的格式表明因无法确认命令产生的协议级别的错误,也能表示一个服务器的内部错误。
以上三个状态响应是协议规定,且是IMAP自有的状态字。
例如:
C: A01 LOGIN SMITH SESAME
S: A01 OK LOGIN completed
或者 S: A01 NO LOGIN failure,invalid username/password
PS:对于IMAPS协议交互
IMAPS是IMAP协议采用SSL加密的协议版本,所获取的信息均为加密的信息,所通过的端口是993端口,其交互过程中的状态字和IMAP4一样,只是在建立TCP连接后,再建立SSL连接,接着在建立的SSL中进行通信。