第1章 POP3概述
POP3全称为Post Office Protocol version3,即邮局协议第3版。它被用户代理用来邮件服务器取得邮件。POP3采用的也是C/S通信模型,对应的RFC文档为RFC1939。该协议非常简单,所以我们只重点介绍其通信过程,而相关的一些概念和术语请参考RFC文档或另外一篇文章《SMTP协议分析》
第2章.POP3详解
2.1通信过程
用户从邮件服务器上接收邮件的典型通信过程如下。
1) 用户运行用户代理(如Foxmail, OutlookExpress)。
2) 用户代理(以下简称客户端)与邮件服务器(以下简称服务器端)的110端口建立TCP连接。
3) 客户端向服务器端发出各种命令,来请求各种服务(如查询邮箱信息,下载某封邮件等)。
4) 服务端解析用户的命令,做出相应动作并返回给客户端一个响应。
5) 3)和4)交替进行,直到接收完所有邮件转到步骤6),或两者的连接被意外中断而直接退出。
6) 用户代理解析从服务器端获得的邮件,以适当地形式(如可读)的形式呈现给用户。
其中2)、3)和4)用POP3协议通信。可以看出命令和响应是POP3通信的重点,我们将予以重点讲述。
2.2命令和响应
2.2.1.格式
POP3的命令不多,它的一般形式是:COMMAND [Parameter]<CRLF>。其中COMMAND是ASCII形式的命令名,Parameter是相应的命令参数,<CRLF>是回车换行符(0DH, 0AH)。
服务器响应是由一个单独的命令行组成,或多个命令行组成,响应第一行“+OK”或“-ERR”开头,然后再加上一些ASCII文本。“+OK”和“-ERR”分别指出相应的操作状态是成功的还是失败的。
2.2.2.三个状态
POP3协议中有三种状态,认正状态,处理状态,和更新状态。命令的执行可以改变协议的状态,而对于具体的某命令,它只能在具体的某状态下使用,这些请参看表1和RFC193。
客户机与服务器刚与服务器建立连接时,它的状态为认证状态;一旦客户机提供了自己身份并被成功地确认,即由认可状态转入处理状态;在完成相应的操作后客户机发出QUIT命令(具体说明见后续内容),则进入更新状态,更新之后又重返认可状态;当然在认可状态下执行QUIT命令,可释放连接。状态间的转移如图 1所示。
---建立连接---|认可|--认证成功--|处理|--执行QUIT--|更新|
|_______ -QUIT结束_________________|