登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

BCB-DG's Blog

...

 
 
 

日志

 
 

POP3命令  

2009-08-25 21:43:27|  分类: Delphi |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

POP3命令包括:
USER username 认证用户名
PASS password 认证密码认证,认证通过则状态转换
APOP name,digest 认可一种安全传输口令的办法,执行成功导致状态转

换,请参见 RFC 1321 。
STAT 处理请求服务器回送邮箱统计资料,如邮件数、 邮件总字节数
UIDL n 处理服务器返回用于该指定邮件的唯一标识,如果没有指定,返

回所有的。
LIST n 处理服务器返回指定邮件的大小等
RETR n 处理服务器返回邮件的全部文本
DELE n 处理服务器标记删除,QUIT 命令执行时才真正删除
RSET 撤消所有的 DELE 命令
TOP n m 处理服务器返回 n 号邮件的前 m 行内容,m 必须是自然数
NOOP 处理服务器返回一个肯定的响应
QUIT 希望结束会话。如果 server 处于"处理" 状态,则现在进入"更新"

状态,删除那些标记成删除的邮件。如果 server 处于"认可"状态,则结

束会话时 server 不进入"更新"状态 。

在Internet,POP3(Post Office Protocol 3)协议通常被用来接收电子邮

件。这个协议很容易学,因为它只包含12个命令(其中有3个你完全可以

忽略它们的存在)。这些命令被客户端计算机用来发送 给远程服务器。

反过来,服务器返回给客户端计算机两个回应代码。如果你还没有看本站

另一篇文章-“Winsock Terminal 示例程序”的话,请先阅读那篇文章

,因为你需要那个程序来做实验。

运行示例程序,单击工具栏上的"Connect to"按钮。在弹出的对话框中输

入你要连机的邮件服务器的地址例如:

mail.comset.net

选择POP3协议,然后单击"Connect"按钮。如果成功的话(如果出错,肯定

是你服务器地址有问题,别怀疑到程序头上来),你会在文本框中看到服

务器返回给你的信息。我的服务器的应答如下:

+OK POP3 mail.comset.net v5.49 server ready

这个字符串告诉你连机成功了。不同服务器的回应会有所不同,但开头部

分都是一样的,那就是:
"+OK"。它的意思是服务器接受客户端计算机所使用的命令顺序及语法。

如果开头是"-ERR",则表示你使用了错误的命令。在你的应用程序中,只

须处理来自服务器的回应的前面几个字符。这么小的处理量正是POP3相对

其它协议的优势所在。

授权状态

好了,现在我们已经建立了同服务器的连接并且从服务器那里得到了肯定

的回答。接下来要做的就是告诉服务器你的身份。服务器要管理成千上万

个邮箱并不是件好难的事。它已为每个邮箱建立好了一个帐户。每个帐户

由用户名和密码构成。当你连上服务器后,要发送的第一个命令就是USER

,用户名是该命令的参数。具体写法如下:

USER username

如果用户名已注册,服务器将返回一条正确的消息,然后你就可以输入下

面的命令,告诉服务器你的密码。

PASS password

如果用户名和密码吻合的话,服务器同样会返回一条正确的消息,告诉你

可以进入下一阶段,即TRANSACTION state.

TRANSACTION状态

为了知道你的邮箱中目前有多少封邮件以及这些邮件的大小,可使用STAT

命令。它会告诉你邮箱目前的状态。服务器所返回的信息可能会是下面的

样子:

+OK 0 0 (你的邮箱中没有邮件)
+OK 3 825 (你的邮箱中有三封邮件,大小为825个八位字节)

如果邮箱中没有邮件,就没有什么好做的了,用QUIT命令就可结束同服务

器的连接。如果邮箱中有邮件的话,你可以用RETR命令把邮件下载到你自

己的机器上。这个命令要求邮件的索引作为其参数。例如,如果我们想收

第一封邮件,可输入如下命令:

RETR 1

要想取回其它的邮件,用上面的命令加上相应的邮件编号就行了。如果你

输入的邮件编号超过了信箱中的邮件数量,服务器就会返回一个 "-ERR"

给你。作为对RETR命令的回应,服务器会返回给你一个字符串。这个字符

串包含下面这些东西:"+OK"、邮件大小、邮件文本以及一个包含小数点

的字符串。最后一个字符串,也就是小数点表示消息的结束。例如:

Client: RETR 2
Server: +OK 234 octets
Server: <邮件文本>
Server: .

注意上面收邮件的过程并不意味着将这些邮件转移到你的计算机上。你是

得到这些邮件的一份拷贝,你的住信箱中仍会存放这些邮件直到你用DELE

命令删除它们。同样地,DELE命令也需要你提供邮件的索引号。实际上,

当你使用了DELE命令后,这些邮件并不是立即从服务器上删除。这些邮件

只是被做上了一个删除的标记,当你断开同服务器的连接后,才真正从服

务器上删除。如果你想移除这些删除标记,用RSET命令。这个命令并不针

对某一个特定的邮件,而是移除所有删除标记,所以你不需要提供邮件索

引号给这个命令。

除了上面所说的命令之外,当你还处在TRANSACTION状态时,POP3还支持

另外两个命令。这两个命令是:LIST和NOOP。LIST命令可用来列出邮件的

信息。就象下面所显示的一样:

Client: LIST
Server: +OK 2 messages (320 octets)
Server: 1 120
Server: 2 200
Server: .

通过对LIST命令提供邮件索引号,可列出特定邮件的信息,如下例:

Client: LIST 2
Server: +OK 2 200

NOOP命令具体的事情不做,只是用来检查同服务器的连接。

UPDATE状态

当你处于UPDATE状态时,你只有一个命令可用,那就是:QUIT。用这个命

令来确认你所做的所有改变,删除被标上删除标记的邮件以及关闭连接。

其它POP3命令

POP3协议还支持另外三个命令:TOP、UIDL及APOP。这里只介绍第一个命

令。TOP命令可用来获取邮件头及被预定义的一块字符串。通常如果你的

邮箱中中一封容量很大的邮件时,这个命令特别有用。用TOP命令,你可

以只显示邮件头的信息,从中找出邮件作者有主题。你甚至可以只下载这

部分信息。该命令的语法如下:

TOP msg n

msg - 邮件的索引号

n - 你想要显示的行数

  评论这张
 
阅读(3961)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018