pop3的基本流程
上一篇 /
下一篇 2007-11-28 11:00:51
/ 个人分类:网络协议
1."确认"状态
X\`@
HCs0
iaFin6U {0 TCP连接由POP3客户打开,POP3服务器发送一个单行的确认。这个消息可以是由CRLF结51Testing软件测试网
yV _QR9G3Ju%X
束的任何字符。例如,它可以是: 51Testing软件测试网;HWM3H7W\
S: +OK POP3 server ready
"W0?Av'AI0 注意:这个消息是一个POP3应答。POP3服务器应该给出一个"确定"响应作为确认。51Testing软件测试网"Zmzv-A:x
o%R
此时POP3会话就进入了"确认"状态。此时,客户必须向服务器证明它的身份。在文档中介绍
,~&A h4f.~B\0两种可能的处理机制,一种是USER和PASS命令,另一种是在后面要介绍的APOP命令。
d a9^\
SpR0 用USER和PASS命令进行确认过程,客户必须首先发送USER命令,如果POP3服务器以"确认"状
"]@7y$we;D'LZ0态码响应,客户就可以发送PASS命令以完成确认,或者发送QUIT命令终止POP3会话。如果POP3服
e3Q
Xo:d7]dk0务器返回"失败"状态码,客户可以再发送确认命令,或者发送QUIT命令。
r,~d5T/K}a0 当客户发送了PASS命令后,服务器根据USER和PASS命令的附加信息决定是否允许访问相应的
$rO8Jm0Q-z5zE0存储邮件。
w
[%y,Nzl_0 一旦服务器通过这些数据决定允许客户访问储存邮件,服务器会在邮件上加上排它锁,以防
9St3d2rA$O+x0止在进入"更新"状态前对邮件的改变。如果成功获得了排它锁,服务器返回一个"确认"状态码。
XIg$H9T0会话进入"操作状态",同时没有任何邮件被标记为删除。如果邮件因为某种原因不能打开(例如,51Testing软件测试网}i7\Ic q
x(N3u9h
排它锁不能获得,客户不能访问相应的邮件或者邮件不能进行语法分析),服务器将返回"失败"51Testing软件测试网2mA!]9Fu2`
T:``
状态码。在返回"失败"状态码后,服务器会关闭连接。如果服务器没有关闭连接,客户可以重新51Testing软件测试网RLgA)HJj'Atm
发送确认命令,重新开始,或者发送QUIT命令。51Testing软件测试网WF)}
[:T-mB
在服务器打开邮件后,它为每个消息指定一个消息号,并以八进制表示每个消息的长度。第
3OXo%b2y#i0一个消息被指定为1,第二个消息被指定为2,以此类推,第N个消息被指定为N。在POP3命令和响应51Testing软件测试网o$A4X1ZI~x
]U3r
中,所以的消息号和长度以十进制表示。51Testing软件测试网8?A.Cc}
l s%I0GI8F8v
51Testing软件测试网MO9V}fF:A-st
2. "操作"状态
/Yx%l:e2NA!P0
1]}#g"L'd-h6Q9L0 一旦客户向服务器成功地确认了自己的身份,服务器将锁住并打开相应的邮件,这时POP3会
Q*@@,P
}gI3])|0话进入"操作"状态。现在客户可以重复下面的POP3命令,对于每个命令服务器都会返回应答。最51Testing软件测试网0?S$A]*WE
后,客户发送QUIT命令,会话进入"更新"状态。
RCaZ$n5Y0 51Testing软件测试网1e6X$d'R.a{"m
3."更新"状态
3jro.y-R3wqe&{o051Testing软件测试网Y Qj0]8O3Knj'h`
当客户在"操作"状态下发送QUIT命令后,会话进入"更新"状态。(注意:如果客户在"确认"状
8Hg5w,JE,r/s0态下发送QUIT后,会话并不进入"更新"状态。)51Testing软件测试网SA G-b
Zs)y}
如果会话因为QUIT命令以外的原因中断,会话并不进入"更新"状态,也不从服务器中删除任何
;~RP]*I^J0信件。
见下面的例子:
recv buf0 100
'z`1S
i~Mw!Y1?
~9c4B0 "+OK infosec.com.cn POP MDaemon 6.8.5 准备好 <MDAEMON-F200601201105.AA05442"
u(g^5eo'|/T9E&~0 "25MD3966@infosec.com.cn>\r\n" send buf1 1151Testing软件测试网ZUP
@0yS,r X:b"S
"USER libh\r\n"
recv buf2 2451Testing软件测试网&~y!}PXu
e8F
"+OK libh... 收信人确定\r\n"
send buf3 13
:ow{,S1QU0 "PASS 112358\r\n"
send buf5 6
:hQ,R0w:m
_8du]0 "STAT\r\n"
recv buf6 951Testing软件测试网 grz-x S,tm-\m5i
"+OK 0 0\r\n"
send buf7 6
/|P7K KjV"c-\~0 "QUIT\r\n"
注:2007年1月23日写于msn共享空间
收藏
举报
TAG:
网络协议
pop3
mail