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

简介:

邮件的接收使用了 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.com 和 test_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 程序来手工地接受邮件的过程就差不多了,也是一种感觉:麻烦。



本文转自 xxxx66yyyy 51CTO博客,原文链接:http://blog.51cto.com/haolloyin/353597,如需转载请自行联系原作者

相关文章
|
7月前
|
移动开发
【实用】一组原创原生样式的基础控件、UI组件样式(偏向移动端H5页面的样式)
【实用】一组原创原生样式的基础控件、UI组件样式(偏向移动端H5页面的样式)
【实用】一组原创原生样式的基础控件、UI组件样式(偏向移动端H5页面的样式)
|
编解码 数据安全/隐私保护 Java
|
Linux 网络安全
linux端口连通性测试telnet、wget、ssh、curl
linux端口连通性测试telnet、wget、ssh、curl
151 0
|
安全 Linux
Linux安装Telnet
Linux安装Telnet
152 0
|
5月前
|
Linux
Linux telnet安装及端口测试联通性
Linux telnet安装及端口测试联通性
154 10
|
7月前
|
安全 Ubuntu Linux
Linux 网络操作命令Telnet
Linux 网络操作命令Telnet
265 0
Linux 网络操作命令Telnet
|
7月前
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】⭐Linux 远程登录工具 telnet 命令 使用指南
【Shell 命令集合 网络通讯 】⭐Linux 远程登录工具 telnet 命令 使用指南
235 0
|
7月前
|
安全 网络协议 Linux
linux命令之telnet
linux命令之telnet
352 4