三个重要的邮件系统相关协议__教程 |
|
日期:2007-1-6 11:17:15 人气:95 [大 中 小] |
|
|
|
一时tcp连接由pop3客户打开,pop3服务器发送一个单行的确认。这个消息可以是由crlf结束的任何字符。例如,它可以是: s: +ok pop3 server ready 注意:这个消息是一个pop3应答。pop3服务器应该给出一个"确定"响应作为确认。此时pop3会话就进入了"确认"状态。此时,客户必须向服务器证明它的身份。在文档中介绍两种可能的处理机制,一种是user和pass命令,另一种是在后面要介绍的apop命令。用user和pass命令进行确认过程,客户必须首先发送user命令,如果pop3服务器以"确认"状态码响应,客户就可以发送pass命令以完成确认,或者发送quit命令终止pop3会话。如果pop3服务器返回"失败"状态码,客户可以再发送确认命令,或者发送quit命令。当客户发送了pass命令后,服务器根据user和pass命令的附加信息决定是否允许访问相应的存储邮件。一旦服务器通过这些数据决定允许客户访问储存邮件,服务器会在邮件上加上排它锁,以防止在进入"更新"状态前对邮件的改变。如果成功获得了排它锁,服务器返回一个"确认"状态码。会话进入"操作状态",同时没有任何邮件被标记为删除。如果邮件因为某种原因不能打开(例如,排它锁不能获得,客户不能访问相应的邮件或者邮件不能进行语法分析),服务器将返回"失败"状态码。在返回"失败"状态码后,服务器会关闭连接。如果服务器没有关闭连接,客户可以重新发送确认命令,重新开始,或者发送quit命令。在服务器打开邮件后,它为每个消息指定一个消息号,并以八进制表示每个消息的长度。第一个消息被指定为1,第二个消息被指定为2,以此类推,第n个消息被指定为n。在pop3命令和响应中,所以的消息号和长度以十进制表示。 下面是对上述三条命令的总结: 命令 格式 参数 限制 响应 user name 指定邮箱的字符串,这对服务器至关重要仅在user和pass命令失败后或在"确认"状态中使用 +ok:有效邮箱; -err:无效邮箱 c: user mrose s: +ok mrose is a real hoopy frood ... c: user frated s: -err sorry, no mailbox for frated here pass string 口令仅在"确认"状态中user命令成功后使用(因为此命令只有一个参数,因此空格不再作为分隔符,而作为口令的一部分) +ok:邮件锁住并已经准备好; -err无效口令或无法锁住邮件 c: user mrose s: +ok mrose is a real hoopy frood c: pass secret s: +ok mrose's maildrop has 2 messages (320 octets) ... c: user mrose s: +ok mrose is a real hoopy frood c: pass secret s: -err maildrop already locked quit (无) (无) +ok c: quit s: +ok dewey pop3 server signing off 5. "操作"状态 一旦客户向服务器成功地确认了自己的身份,服务器将锁住并打开相应的邮件,这时pop3会话进入"操作"状态。现在客户可以重复下面的pop3命令,对于每个命令服务器都会返回应答。最后,客户发送quit命令,会话进入"更新"状态。 下面是在"操作"状态中可用的命令: 命令 参数 限制 说明 响应 stat (无) 仅在"操作"状态下可用。 服务器以包括邮件信息的响应做为"确认"。为简化语法分析,所有的服务器要求使用邮件列表的特定格式。"确认"响应由一个空格,以八进制表示的邮件数目,一个空格和邮件大小。这是最小实现,高级的实现还需要别的信息。 注意:被标记为删除的信件不在此列。 +ok: nn mm c: stat s: +ok 2 320 list [msg] 信件数目(可选),如果出现,不包括标记为删除的信件。 仅在"操作"状态下可用。 如果给出了参数,且pop3服务器返回包括上述信息的"确认",此行称为信息的"扫描表"。如果没有参数,服务器返回"确认"响应,此响应便以多行给出。在初的+ok后,对于每个信件,服务器均给出相应的响应。为简化语法分析,所有服务器要求使用扫描表的特定格式。它包括空格,每个邮件的确切大小。这是最小实现,高级的实现还需要别的信息。注意:被标记为删除的信件不在此列。 +ok:其后跟扫描表; -err:无扫描。 c: list s: +ok 2 messages (320 octets) s: 1 120 s: 2 200 s: . ... c: list 2 s: +ok 2 200 ... c: list 3 s: -err no such message, only 2 messages in maildrop retr msg 不包括标记为删除的信件数目。 仅在"操作"状态下可用。 如果服务器返回"确认",给出的响应是多行的。在初始的+ok后,服务器发送与给定信息号对应的信息,对于多行响应,注意字节填充终止符。 |
|
出处:本站原创 作者:佚名 |
|
|