POP3邮件接收协议介绍

一、POP3简介

POP3(Post Office Protocol version3),即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件

二、POP3详解

1、通信过程

1)、建立和pop3邮件服务器建立连接 通常是tcp连接,不同邮箱有不同的邮件服务器地址,本文以126邮箱为例,邮件服务器地址为 pop3.126.com  端口为 110 ,建立连接后邮件服务器会回复连接成功;

2)、客户端向服务器端发出各种命令,来请求各种服务(如查询邮箱信息,下载某封邮件等)。

3)、服务端解析用户的命令,做出相应动作并返回给客户端一个响应。

4)、通常步骤2和3会交替进行,来获取邮件的数据。

5)、完成通讯,退出。

2、三个状态

POP3协议中有三种状态,认正状态,处理状态,和更新状态。 命令的执行可以改变协议的状态,而对于具体的某命令,它只能在具体的某状态下使用,这些请参看表1和RFC193。

客户机与服务器刚与服务器建立连接时,它的状态为认证状态;一旦客户机提供了自己身份并被成功地确认,即由认可状态转入处理状态; 在完成相应的操作后客户机发出QUIT命令(具体说明见后续内容),则进入更新状态,更新之后又重返认可状态;当然在认可状态下执行QUIT命令,可释放连接。状态间的转移如图 1所示。

-

图1 pop3状态转换图

                                             ---建立连接---|认可|--认证成功--|处理|--执行QUIT--|更新| 
                                                                                                                             |_______ -QUIT结束_________________|

3、POP3命令

POP3常见命令
命令 参数 使用状态 含义
USER Username(邮箱地址) 认证 向服务器发送用户名也就是邮箱的地址
PASS Password(邮箱的登录密码) 认证 向服务器发送邮箱的密码 验证成功后邮箱服务器会返回登录成功的消息
STAT (无) 处理 请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数

UIDL

[Msg#](邮件号,下同)

处理

返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的

LIST

[Msg#]

处理

返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的

RETR

[Msg#]

处理

返回由参数标识的邮件的全部文本

DELE

[Msg#]

处理

服务器将由参数标识的邮件标记为删除,由QUIT命令执行

TOP

[Msg#]

处理

服务器将返回由参数标识的邮件的邮件头+前n行内容,n必须是正整数

NOOP

None

处理

服务器返回一个肯定的响应,用于测试连接是否成功

QUIT

None

处理、认证

1) 如果服务器处于“处理”状态,么将进入“更新”状态以删除任何标记为删除的邮件,并重返“认证”状态。

2)如果服务器处于“认证”状态,则结束会话,退出连接

三、实例讲解

1、命令行操作

root@ubuntu:~# telnet pop3.126.com 110
Trying 123.125.50.23...
Connected to pop3.126.idns.yeah.net.
Escape character is '^]'.
+OK Welcome to coremail Mail Pop3 Server (126coms[753e2252bd59b8c4a1c2eb6d5fe57cb3s])
user [email protected]
+OK core mail
pass ****************
+OK 1827 message(s) [310767720 byte(s)]
list 1
+OK 1 19993
uidl 1
+OK 1 1tbiEwqK8EntOtumLAAAss
retr 1
+OK 19993 octets
Received: from smtpcom.263xmail.com (unknown [211.150.64.23])
        by mx6 (Coremail) with SMTP id JMmowLDLbATnVpBLQGv2RA--.5983S2;
        Fri, 05 Mar 2010 08:57:11 +0800 (CST)
Received: from smtpcom.263xmail.com (localhost.localdomain [127.0.0.1])
        by smtpcom.263xmail.com (Postfix) with ESMTP id 19A8B6B199
        for <*********@126.com>; Fri,  5 Mar 2010 08:57:15 +0800 (CST)
X-ABS-CHECKED:1
X-KSVirus-check:0
。。。。。。。。。。。。。(中间省略)

------=_NextPart_000_0018_01CABC41.D85CD8A0--

.
quit
+OK core mail
Connection closed by foreign host.

2、网络抓包查看协议

四、结束语

 本文主要介绍POP3基本协议的使用,这只是协议的传输部分,如果想实现连接,解析还需要依赖其他的模块,在此不一一介绍,以后有机会分享

参考引用:

https://blog.csdn.net/new_teacher/article/details/51392444

猜你喜欢

转载自blog.csdn.net/wanxuexiang/article/details/82193423