三个重要的邮件传输协议之POP3

【三个重要的邮件传输协议之POP3】POP3协议规范
对于在网络上的比较小的结点,支持消息传输系统(mts)是不实际的 。例如,一台工作站可能不具有充足的资源答应smtp服务器和相当的本地邮件传送系统保持序驻留,并持续运行 。同样的,将一台个人计算机长时间连接在ip类型网络上的费用也是可观的(结点缺少的资源被称为"联络性") 。
虽然如此,在这样的小结点上答应治理邮件是十分有用的,并且这些结点经常支持一个用户代理来治理邮件 。为解决这一问题,能够支持mts的结点就为这些不能支持的结点提供了邮件存储功能 。
邮局协议-版本3就是使这样的工作站可以用一种比较实用的方法来访问存储于服务器上的储存邮件 。通常,这意味着工作站可以从服务器上取得邮件,而服务器为它暂时保存邮件 。在下文中,客户主机指的是利用pop3服务的主机,而服务器主机指的是提供pop3服务的主机 。
简单说明
在此文档中不指明客户主机如何将邮件送入到传送系统中去 。但这里有一个说明:当用户代理需要将信息送到传送系统时,它在接力主机上建立smtp连接(这些接力主机可以是pop3主机,也可以不是) 。
基本操作
初始时,服务器通过侦听tcp端口110开始pop3服务 。当客户主机需要使用服务时,它将与服务器主机建立tcp连接 。当连接建立后,pop3发送确认消息 。客户和pop3服务器相互(分别)交换命令和响应,这一过程一直要持续到连接终止.pop3命令由一个命令和一些参数组成 。所有命令以一个crlf对结束 。命令和参数由可打印的ascii字符组成,它们之间由空格间隔 。命令一般是三到四个字母,每个参数却可达40个字符长 。
pop3响应由一个状态码和一个可能跟有附加信息的命令组成 。所有响应也是由crlf对结束 。现在有两种状态码,"确定" (" ok")和"失败" ("-err") 。对于特定命令的响应是由许多字符组成的 。在这些情况中,下面一一表述:在发送第一行响应和一个crlf之后,任何的附加信息行发送,他们也由crlf对结束 。当所有信息发送结束时,发送最后一行,包括一个结束字符(十进制码46,也就是".")和一个crlf对 。假如信息中的任何一行以结束字符开始,此行就是通过在那一行预先装入结束而进行字符填充的 。因此,多行响应由五个crlf.crlf 结束 。
当检测多行响应时,客户检测以确认此行是否以结束字符开始 。假如是的,而且其后的字符不是crlf,此行的第一个字符(结束字符)将被抛弃;假如其后紧跟crlf,从pop服务器来的响应终止,包括.crlf 的行也不被认为是多行响应的一部分了 。在生命周期中,pop3会话有几个不同的状态 。一旦tcp连接被打开,而且pop3服务器发送了确认信息,此过程就进入了"确认"状态 。在此状态中,客户必须向pop3服务器确认自己是其的客户 。
一旦确认成功,服务器就获取与客户邮件相关的资源,此时这一过程进入了"操作"状态 。在此状态中,客户提出服务,当客户发出quit命令时,此过程进入了"更新"状态 。在此状态中,pop3服务器释放在"操作"状态中取得的资源,并发送消息,终止连接 。pop3服务器可以拥有一个自动退出登录的记时器 。此记时器必须至少可以记录10分钟 。这样从客户发送的消息才可能刷新此记时器 。当记时器失效时,pop3会话并不进入"更新"状态,而是关闭tcp连接,而且不删除任何消息,不向客户发送任响应
"确认"状态
一时tcp连接由pop3客户打开,pop3服务器发送一个单行的确认 。这个消息可以是由crlf结束的任何字符 。例如,它可以是: s:ok pop3 server ready 注重:这个消息是一个pop3应答 。pop3服务器应该给出一个"确定"响应作为确认 。此时pop3会话就进入了"确认"状态 。此时,客户必须向服务器证实它的身份 。在文档中介绍两种可能的处理机制,一种是user和pass命令,另一种是在后面要介绍的apop命令 。

推荐阅读