Chinaunix首页 | 论坛 | 博客
  • 博客访问: 276258
  • 博文数量: 64
  • 博客积分: 1758
  • 博客等级: 上尉
  • 技术积分: 543
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-25 11:13
文章分类
文章存档

2011年(54)

2010年(10)

我的朋友

分类: LINUX

2011-04-02 15:07:58

今天抽空学习了一下pop的命令,了解了一下pop的收信过程,主要命令如下:

USER username
PASS password
 
以上认证过程通过后,服务端会返回以下信息:

+OK 3 message(s) [40789 byte(s)]

告诉客户端该账号下有三封邮件,总大小为40789 byte

接着客户端继续发送以下命令:
STAT
此时服务端返回以下信息:
+OK 3 40789

接着客户端继续发送以下命令:
UIDL
此命令主要列出邮箱的中每封邮件的唯一id号
+OK 3 40789
1 1tbiNgAUp00Q05cGGwACsD
2 1tbiNgAUp00Q05cGGwABsA
3 1tbiNgAUp00Q05cGGwAAsB
.

紧接着客户端发送以下命令:
LIST
服务端回应:
+OK 3 40789 
1 2252
2 2227
3 36310
.
也就是每封邮件的大小

接着客户端发送以下命令:
RETR 1
此时服务端回应:
+OK 2252 octets 
接下就是整封邮件的原文 

最后邮件接受完后,客户端发送以下命令:
QUIT 
服务端回应:
+OK 

其中还有DELE和RSET两个命令未体验,DELE主要是删除一封邮件,但在未执行QUIT命令之前,该封邮件未真正删除,而RSET命令将标记为DELE的邮件恢复;
 
通过多次发现,当有新邮件进入用户邮箱后,使用UIDL命令返回的邮件列表每次新邮件都在旧邮件的前面,也就是id号最新的邮件永远为1;

这样当客户端保存了UIDL返回的信息后,通过比对,即可确定需要RETR的邮件,所以每次我们看到POP客户端返回的邮件都是最新的邮件列表。

阅读(1544) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~