"更新"状态
当客户在"操作"状态下发送quit命令后,会话进入"更新"状态。(注意:如果客户在"确认"状态下发送quit后,会话并不进入"更新"状态。) 如果会话因为quit命令以外的原因中断,会话并不进入"更新"状态,也不从服务器中删除任何信件。
命令
参数
限制
说明
响应
quit
(无)
(无)
服务器删除所有标记为删除的信件,然后释放排它锁,并返回这些操作的状态码。最后tcp连接被中断。
+ok
c: quit
s: +ok dewey pop3 server signing off (清空标记邮件)
...
c: quit
s: +ok dewey pop3 server signing off
7.可选的pop3命令
以上讨论的命令是对pop3服务的最小实现。以下说明的可选命令允许客户更方便地处理信件,这是一个比较一般的pop3服务实现。
命令 参数 限制 说明 响应
top msg n
一个是未被标记为删除的信件数,另一个是非负数(必须提供)仅在"操作"状态下使用。
如果服务器返回"确认",响应是多行的。在初始的+ok后,服务器发送信件头,一个空行将信件头和信件体分开,对于多行响应要注意字节填充终止符。 注意:如果客户要求的行数比信件体中的行数大,服务器会发送整个信件。
+ok:其后有信件头;
-err:其后无类似消息。
c: top 1 10
s: +ok
s: <服务器发送消息头,一个空行和信件的头10行>
s: .
...
c: top 100 3
s: -err no such message
uidl [msg]
信件数(可选)。
如果给出信件数,不包括被标记为删除的信件。
仅在"操作"状态下使用。如果给出了参数,且pop3服务器返回包括上述信息的"确认",此行称为信息的"独立-id表"。 如果没有参数,服务器返回"确认"响应,此响应便以多行给出。在初的+ok后,对于每个信件,服务器均给出相应的响应。此行叫做信件的"独立-id表"。 为简化语法分析,所有服务器要求使用独立-id表的特定格式。它包括空格和信件的独立-id。 信件的独立-id由0x21到0x7e字符组成,这个符号在给定的存储邮件中不会重复。 注意:信件不包括被标记为删除的信件。
+ok:其后是独立-id表;
-err:其后无类似信件。
c: uidl
s: +ok
s: 1 whqtswo00wbw418f9t5jxywz
s: 2 qhdpyr:00wbw1ph7x7
s: .
...
c: uidl 2
s: +ok 2 qhdpyr:00wbw1ph7x7
...
c: uidl 3
s: -err no such message, only 2 messages in maildrop
apop name digest
指定邮箱的字串和md5摘要串。
仅在pop3确认后的"确认"状态中使用。通常,每个pop3会话均以user/pass互换开始。这导致了用户名和口令在网络上的显式传送,这不会造成什么危险。但是,许多客户经常连接到服务检查信件。通常间隔时间比较短,这就加大了泄密的可能性。另 一种提供"确认"过程的方法是使用apop命令。 实现apop命令的服务器包括一个标记确认的时间戳。例如:在unix上使用apop命令的语法为:process-id.clock@hostname,其中进程-id是进程的十进制的数,时钟是系统时钟的十进制表示,主机名与pop3服务器名一致。