客户记录下此时间戳,然后以送apop命令。name语法和user命令一致。digest是采用md5算法产生的包括时间戳和共享密钥的字串。此密钥是客户和服务器共知的,应该注意保护此密钥,如果泄密,任何人都能够以用户身份进入服务器。如果服务器接到apop命令,它验证digest,如果正确,服务器返回"确认",进入"操作"状态;否则,给出"失败"并停留在"确认"状态。注意:共享密钥的长度增加,解读它的难度也相应增加,这个密钥应该是长字符串。
+ok:邮件锁住并准备好;
-err:拒绝请求。
s: +ok pop3 server ready <1896.697170952@dbc.mtview.ca.us>
c: apop mrose c4c9334bac560ecc979e58001b3e22fb
s: +ok maildrop has 1 message (369 octets) 在此例子中,共享密钥
<1896.697170952@dbc.mtview.ca.us>tanstaaf由md5算法生成,它产生了digest值,
c4c9334bac560ecc979e58001b3e22fb
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: <等待下一次连接>