6.“更新”状态
当客户在“操作”状态下发送QUIT命令后,会话进入“更新”状态。(注意:如果客户在“确认”状态下发送QUIT后,会话并不进入“更新”状态。)
如果会话因为QUIT命令以外的原因中断,会话并不进入“更新”状态,也不从服务器中删除任何信件。
附加图片 (按一下缩略图来放大)
7.可选的POP3命令
以上讨论的命令是对POP3服务的最小实现。以下说明的可选命令允许客户更方便地处理信件,这是一个比较一般的POP3服务实现。
附加图片 (按一下缩略图来放大)
8. POP3命令总结
基础的POP3命令:
USER name 在“确认”状态有效
PASS string
QUIT
STAT 在“操作”状态有效
LIST [msg]
RETR msg
DELE msg
NOOP
RSET
QUIT 在“更新”状态有效
可选的POP3命令:
APOP name digest 在“确认”状态有效
TOP msg n 在“操作”状态有效
UIDL [msg]
POP3 响应:
+OK
-ERR
注意:除了STAT,LIST和UIDL的响应外,其它命令的响应均为"+OK"和 "-ERR"。响应后的所有文本将被客户略去。
9. POP3会话实例
S: <等待连接到TCP端口110>
C: <打开连接>
S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb
S: +OK mrose's maildrop has 2 messages (320 octets)
C: STAT
S: +OK 2 320
C: LIST
S: +OK 2 messages (320 octets)
S: 1 120
S: 2 200
S: .
C: RETR 1
S: +OK 120 octets
S: <服务器发送信件1>
S: .
C: DELE 1
S: +OK message 1 deleted
C: RETR 2
S: +OK 200 octets
S: <服务器发送信件2>
S: .
C: DELE 2
S: +OK message 2 deleted
C: QUIT
S: +OK dewey POP3 server signing off (maildrop empty)
C: <关闭连接>
S: <等待下一次连接>
10. 消息格式
在会话过程中的消息格式都假定与Internet文本消息格式标准一致。应该注意的是,由于各个服务器对于换行符的处理不同,因此计数不一定相同。通常,在“确认”状态中,服务器能够以八进制计算信件的大小。例如,如果在打开储存邮件时服务器内部认定换行符代表一个字符,一般服务器在计算它时作为两个字符计。注意,以终止符开始的消息行不被计数两次,因为客户将在接收到多行响应后删除所有字节填充。
11. 安全性考虑
可以推测,使用APOP命令可以提供会话期间的保护。相应的,同时实现PASS和APOP命令的服务器只允许用户以一种方式访问;也就是说要么使用USER/PASS组合,要么使用APOP命令,不能同时使用两个。
而且,注意随着共享密钥长度的增加,解读的难度也就上升了。服务器要提供用户名时不给出任何响应,不给出任何暗示此用户名是否正确。而口令却在网络上显式传送;使用RETR和TOP命令在网络上显式传送信件。