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

曾国藩的博客

 
 
 

日志

 
 

图解使用telnet程序手工接收邮件及其过程  

2012-04-11 17:45:16|  分类: 网络/系统架构/版 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://haolloyin.blog.51cto.com/1177454/353597

邮件的接收使用了 POP3 (Post Office Protocol ,邮局协议)协议。POP3 协议定义了邮件客户端程序与 POP3 服务器进行通信以获得邮件相关内容的具体规则和细节。

POP3 协议类似于 SMTP 协议,它定义了一些命令用于管理邮箱等具体操作,为了能够在 Windows 下使用 telnet 程序来接收邮件,我们需要明白这些相关命令,具体请看下面(<space> 为空格,<CRLF> 为回车加换行):

  1. 1、user<space>邮箱的用户名<CRLF> :
  2. 该命令用于与 POP3 服务器建立联系;  
  3.  
  4. 2、pass<space>邮箱密码<CRLF> 
  5. 该命令用于 user 命令成功建立连接之后向 POP3 服务器发送邮箱的密码;  
  6.  
  7. 3、stat<CRLF> : 
  8. 该命令用于查看邮箱中的邮件数量以及所占用的字节大小;  
  9.  
  10. 4、uidl<space>msg#<CRLF> :
  11. 该命令用于查询邮箱中编号为 msg# 的邮件的唯一标识符,注:邮箱中的编号是从 1 开始的;  
  12.  
  13. 5、list<space>[msg#]<CRLF> 
  14. 该命令用于将邮箱中的邮件信息进行列表,当指定参数 msg# 时,返回该编号的邮件的信息,不指定则返回所有邮件的信息;  
  15.  
  16. 6、retr<space>msg#<CRLF> :
  17. 该命令用于获取编号为msg#的邮件的内容;  
  18.  
  19. 7、dele<space>msg#<CRLF> 
  20. 该命令用于将编号为 msg# 的邮件设置上删除的标记,注:执行该命令之后邮件并不立即被删除,而是等到执行 quit 命令才会被删除;  
  21.  
  22. 8、rset<space>msg#<CRLF> 
  23. 该命令用于将执行了 dele 命令的编号为 msg# 的邮件的删除标记清楚掉;  
  24.  
  25. 9、quit<space>msg#<CRLF> :
  26. 该命令用于结束与 POP3 服务器的链接,即结束邮件的接收过程,执行完该命令之后,邮箱中被设置了删除标记的邮件会被真正删除掉。 

实际上, POP3 协议中还有其他几个命令,这里就不给出了,有兴趣的搜索一下。

现在用前面两篇文章注册使用过的 test_hao@163.comtest_hao@sina.cn 邮箱(密码都是:123456)进行实验,假设我们要接收 test_hao@163.com 邮箱中的邮件,那么必须知道 163 邮箱的 POP3 服务器是 pop33.163.com ,并且 POP3 服务器建立连接的默认端口号是 110 , 具体实验过程如下:

1、在 Windows 命令行提示符控制台下使用 telnet 程序与 pop3.163.com 建立连接,输入命令 telnet pop3.163.com 110 ,如下图:

image

连接建立成功,POP3 服务器返回响应信息如下图:

image

2、使用 user 命令和 pass 命令分别发送邮箱用户名和密码,如下图:

image

从返回的响应信息看,已经给出了该邮箱中包含了 4封邮件,共占 25288 字节的空间,这从 4 message(s) [24116 byte(s)] 可以看得出来。我们用浏览器登录邮箱查看一下这些信息是否一致,如下图:

POP3 接收邮件01

嗯,信息是对的,共 4 封邮件。

3、使用 stat 命令查看邮箱中的邮件数量以及所占字节数,如下图:

image

4、使用 uidl 命令查询指定编号的邮件的唯一标识符,假设我们查询编号为 2 的邮件,如下图: 

image

5、使用 list 命令查询邮箱中所有邮件的信息,如下图:

image

6、 使用 list 命令查询某一编号的邮件信息,假设我们查看编号为 2 的邮件,如下图:

image

7、使用 dele 命令为某一编号的邮件设置删除标记,再用 list 命令查看,如下图:

image

发现 list 命令查询出来确实不见了编号为 2 的邮件信息。

8、使用 rset 命令清除被标上删除标记的邮件,这里我们把编号为 2 邮件还原回来,如下图:

image

9、使用 dele 命令之后再使用 quit 命令断开连接,即结束与 POP3 服务器的通信,然后从浏览器登录该邮箱查看编号为 2 的邮件是否被删除,如下图: 

image

image

 POP3 接收邮件02

10、使用 retr 查看某一编号的邮件中的内容,假设编号为 1,如下图:

 

这样子查询得到的邮件 2 的内容有太多的 MIME 协议定义的格式了,很多都是消息体、消息头什么的,而且是经过了 BASE64 编码转换过的,具体的格式含义请搜索了解一下。

 至此,使用 telnet 程序来手工地接受邮件的过程就差不多了,也是一种感觉:麻烦。

我的相关文章:

图解使用Telnet程序手工发送邮件

简单的E-mail发送端程序的Java实现

本文出自 “蚂蚁” 博客,请务必保留此出处http://haolloyin.blog.51cto.com/1177454/353597

  评论这张
 
阅读(881)| 评论(0)
推荐 转载

历史上的今天

评论

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

页脚

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