`
feipigwang
  • 浏览: 769955 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

POP3工作原理

 
阅读更多

一 简介:

1. POP适用于C/S结构的脱机模型的电子邮件协议,目前已发展到第三版,称POP3。脱机模型即不能在线
   操作,不像IMAP4(netscape支持IMAP4)

2. 当客户机与服务器连接并查询新电子邮件时,被该客户机指定的所有将被下载的邮件都将被程序下载到
   客户机,下载后,电子邮件客户机就可以删除或修改任意邮件,而无需与电子邮件服务器进一步交互。

3. POP3客户向POP3服务器发送命令并等待响应,POP3命令采用命令行形式,用ASCII码表示。
   服务器响应是由一个单独的命令行组成,或多个命令行组成,响应第一行以ASCII文本+OK或-ERR指出相应
   的操作状态是成功还是失败

4. 在POP3协议中有三种状态,认可状态,处理状态,和更新状态。
   当客户机与服务器建立联系时,一旦客户机提供了自己身份并成功确认,即由认可状态转入处理状态,
   在完成相应的操作后客户机发出quit命令,则进入更新状态,更新之后最后重返认可状态。如下图

 等待连接    身份确认     quit命令
   —— |认可|————— |处理|——————|更新|
      |_____________________________|
            重返认可状态

5. 认可状态的命令语句
   一般情况下,大多数现有的POP3客户与服务器执行采用ASCII明文发送用户名和口令,在认可状态等
待客户连接的情况下,客户发出连接,并由命令user/pass对在网络上发送明文用户名和口令给服务器
进行身份确认。一旦确认成功,便转入处理状态。
    为了避免发送明文口令的问题,有一种新的认证方法,命令为APOP,使用APOP,口令在传输之前被加密。
当第一次与服务器连接时,POP3服务器向客户机发送一个ASCII码问候,这个问候由一串字符组成对每个客
户机是唯一的,与当时的时间有关,然后,客户机把它的纯文本口令附加到从服务器接收到的字符串之后,
然后计算出结果字符串的MD5单出函数消息摘要,客户机把用户名与MD5消息摘要作为APOP命令的参数一起发送
出去。
    目前,大多数windows上的邮件客户软件不支持APOP命令,qpopper支持。

6. POP3命令码如下:
 命令          参数    状态     描述
--------------------------------------------------------------------------------------------------------------------------------------------
USER       username    认可  此命令与下面的pass命令若成功,将导致状态转换
PASS       password    认可     
APOP       Name,Digest 认可  Digest是MD5消息摘要
--------------------------------------------------------------------------------------------------------------------------------------------
STAT       None    处理  请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数
UIDL       [Msg#]   处理  返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的
LIST       [Msg#]    处理  返回邮件数量和每个邮件的大小
RETR       [Msg#]  处理  返回由参数标识的邮件的全部文本
DELE       [Msg#]  处理  服务器将由参数标识的邮件标记为删除,由quit命令执行
RSET       None   处理  服务器将重置所有标记为删除的邮件,用于撤消DELE命令
TOP        [Msg#]      处理  服务器将返回由参数标识的邮件前n行内容,n必须是正整数
NOOP       None      处理   服务器返回一个肯定的响应
------------------------------------------
QUIT      None      更新     

a.客户机希望结束这次会话
b.如果服务器处于‘处理’状态,那么将进入‘更新’状态以删除任何标记为删除的邮件
c.导致由处理状态到更新状态,又重返认可状态的转变
d.如果这个命令发出时服务器处于‘认可’状态,则结束会话,不进行‘更新’状态。

7. POP3协议在TCP/110端口上等待客户连接请求。

8. 若密码为明文,我如何监听?
下面的命令在服务器运行后在屏幕上显示POP3连接及命令发送的过程:
#sniffit -a -A. -p 110 -b -s 192.169.11.12 
   note: 192.168.11.12是客户机IP地址
         你需要事先安装sniffit这个端口监听程序

9. 考虑这种情况,若客户在收取邮件时,假定为15封信等待接收,但由于线路问题,收到第10封时断线了,
   为什么下次收时仍然从第一封开始,也即为什么前10封没有被从服务器上删除掉?
   
任何邮件的删除都必须在quit命令发出后对已标记为删除的邮件执行删除操作,由于中途断线,仍处于
处理状态,没有机会执行quit命令以进行状态转换。

10. pop3 session is locked by another session, please wait 10 minutes then try again.

由于非正常操作引起POP3程序内部机制锁住该次会话。

11. Foxmail与OE(outlook express)的处理机制的不同。
 
a. 假定服务器上有三封邮件等待客户机接收。用foxmail与OE的不同之处在于
   foxmail每收一封标记删除一封,而OE则等全部接收完后再全部标记为删除最后执行quit命令。

       Foxmail           OE
  -------------------------------
       retr 1            retr 1
       dele 1            retr 2
       retr 2            retr 3
       dele 2            dele 1
       retr 3            dele 2
       dele 3            dele 3
       quit              quit
b. Foxmail的远程邮件管理是非常优秀的管理工具,假定服务器上有三封信,对第一封,我们不想接收
   想从服务器直接删除;对第二封,想接收但不删除,对第三封,这一次不想接收,分别标记后
   最后foxmail发出的命令是

    dele 1
    retr 2
    quit

c. 若没有foxmail,正好有几封很大的信堵住了,我不想接收,想直接删除它,或者想查看这两封是谁发的?

    直接在windows的DOS窗口下用命令行操作,如:
  # telnet my.isp.net  110
   user 'username'
   pass 'password'
   list
   dele 3
   dele 5
   quit
----------------------------------------------------------------------------------------------------------------------------------------------

服务器要管理成千上万个邮箱并不是件好难的事。它已为每个邮箱建立好了一个帐户。每个帐户由用户名和密码构成。当你连上服务器后,要发送的第一个命令就是USER,用户名是该命令的参数。具体写法如下:

USERusername

如果用户名已注册,服务器将返回一条正确的消息,然后你就可以输入下面的命令,告诉服务器你的密码。

PASSpassword

如果用户名和密码吻合的话,服务器同样会返回一条正确的消息,告诉你可以进入下一阶段,即TRANSACTIONstate.

TRANSACTION状态

为了知道你的邮箱中目前有多少封邮件以及这些邮件的大小,可使用STAT命令。它会告诉你邮箱目前的状态。服务器所返回的信息可能会是下面的样子:

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

如果邮箱中没有邮件,就没有什么好做的了,用QUIT命令就可结束同服务器的连接。如果邮箱中有邮件的话,你可以用RETR命令把邮件下载到你自己的机器上。这个命令要求邮件的索引作为其参数。例如,如果我们想收第一封邮件,可输入如下命令:

RETR1

要想取回其它的邮件,用上面的命令加上相应的邮件编号就行了。如果你输入的邮件编号超过了信箱中的邮件数量,服务器就会返回一个"-ERR"给你。作为对RETR命令的回应,服务器会返回给你一个字符串。这个字符串包含下面这些东西:"+OK"、邮件大小、邮件文本以及一个包含小数点的字符串。最后一个字符串,也就是小数点表示消息的结束。例如:

Client:RETR2
Server:+OK234octets
Server:<邮件文本>
Server:.

注意上面收邮件的过程并不意味着将这些邮件转移到你的计算机上。你是得到这些邮件的一份拷贝,你的住信箱中仍会存放这些邮件直到你用DELE命令删除它们。同样地,DELE命令也需要你提供邮件的索引号。实际上,当你使用了DELE命令后,这些邮件并不是立即从服务器上删除。这些邮件只是被做上了一个删除的标记,当你断开同服务器的连接后,才真正从服务器上删除。如果你想移除这些删除标记,用RSET命令。这个命令并不针对某一个特定的邮件,而是移除所有删除标记,所以你不需要提供邮件索引号给这个命令。

除了上面所说的命令之外,当你还处在TRANSACTION状态时,POP3还支持另外两个命令。这两个命令是:LIST和NOOP。LIST命令可用来列出邮件的信息。就象下面所显示的一样:

Client:LIST
Server:+OK2messages(320octets)
Server:1120
Server:2200
Server:.

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

Client:LIST2
Server:+OK2200

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

UPDATE状态

当你处于UPDATE状态时,你只有一个命令可用,那就是:QUIT。用这个命令来确认你所做的所有改变,删除被标上删除标记的邮件以及关闭连接。

其它POP3命令

POP3协议还支持另外三个命令:TOP、UIDL及APOP。这里只介绍第一个命令。TOP命令可用来获取邮件头及被预定义的一块字符串。通常如果你的邮箱中中一封容量很大的邮件时,这个命令特别有用。用TOP命令,你可以只显示邮件头的信息,从中找出邮件作者有主题。你甚至可以只下载这部分信息。该命令的语法如下:

TOPmsgn

msg-邮件的索引号

n-你想要显示的行数

分享到:
评论

相关推荐

    POP3电子邮件客户端及服务器的设计与实现

    首先,我们对 POP3 协议的背景、工作原理和其在电子邮件系统中的重要性进行概述。其次,将分析 POP3 客户端与服务器之间交互的具体过程,以及在设计和实现中所用到的关键技术。 ### POP3 协议概述 POP3 是一种简单...

    pop3接收邮件原理

    根据提供的信息来看,似乎存在一定的混淆,因为给出的内容与所需的“POP3接收邮件原理”这一主题并无关联。不过,为了满足您的需求,我将详细...理解和掌握POP3的工作原理,对于更好地利用电子邮件服务具有重要意义。

    电子邮件收发原理和实现(POP3, SMTP) [整理]

    电子邮件是互联网上最常用的信息交流方式之一,其收发原理主要依赖于两个协议:POP3(Post Office Protocol version 3)和SMTP(Simple Mail Transfer Protocol)。这篇内容将深入讲解这两个协议的工作机制,并通过...

    邮箱实现原理。POP3,SMTP

    电子邮件是互联网上最基础的通信方式之一,而其背后的工作机制主要依赖于SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)等协议。这些协议规定了邮件的发送、接收和存储方式。 **...

    pop3 客户端 c#pop3 客户端 开源的pop3 客户端 pop3

    这里我们将详细探讨POP3客户端的实现、工作原理以及C#中的相关知识点。 1. **POP3协议简介** - POP3协议是基于TCP/IP的,使用端口110进行通信。 - 它遵循“下载并删除”模式,即邮件在客户端下载后通常会从服务器...

    pop3.rar_DEMO_VC POP3_pop3_pop3 vc

    标题“pop3.rar_DEMO_VC POP3_pop3_pop3 vc”指的是一...对于初学者,这是一个很好的实践平台,可以深入理解网络编程和邮件系统的工作原理。同时,对有经验的开发者来说,这个DEMO可以作为快速集成邮件功能的一个起点。

    wireshark软件使用和一次抓包实验

    下面是 POP3 工作原理的步骤: 1. 客户端使用 TCP 协议连接邮件服务器的 110 端口 2. 客户端使用 USER 命令将邮箱的账号传给 POP3 服务器 3. 客户端使用 PASS 命令将邮箱的密码传给 POP3 服务器 4. 完成用户认证后...

    实验八电子邮件服务器实验报告.docx

    1. **理解SMTP和POP3的工作原理** - **SMTP工作原理**: - 客户端使用TCP协议连接到SMTP服务器的25号端口。 - 客户端发送HELO命令,告知SMTP服务器自己的域名地址。 - SMTP服务器确认连接请求,并请求客户端...

    pop3接收邮件及解码

    本文将详细讲解POP3的工作原理、如何使用POP3接收邮件以及邮件的解码过程。 1. POP3协议基础 POP3协议是基于TCP/IP的,其主要目的是使用户能够通过客户端软件从邮件服务器上获取邮件。它通常运行在TCP的110端口上。...

    pop3高级程序开发_pop3_

    下面我们将深入探讨POP3协议的工作原理,以及在编程中实现这些功能的关键技术点。 1. POP3协议简介: POP3是基于TCP的协议,运行在110端口。它的主要任务是让用户可以从远程邮件服务器下载邮件到本地设备。POP3...

    pop3.pcap_pop3.pcap_

    这对于理解POP3协议的工作原理,排查邮件接收问题,或者检测潜在的安全威胁(如中间人攻击、密码嗅探)都十分有价值。使用Wireshark等工具,可以解析出这些数据包的具体内容,便于深入学习和分析。

    收发邮件代码(java).rar

    总之,这个Java代码示例是学习和理解SMTP和POP3工作原理的一个好起点,通过SendMail.java和RecvMail.java,你可以看到如何使用JavaMail API与邮件服务器进行交互,从而实现邮件的发送和接收。这不仅可以帮助初学者...

    提供接收电子邮件的POP3协议(19KB)

    1. **POP3协议原理**:POP3协议的工作流程,包括TCP连接建立、用户身份验证、邮件列表获取、邮件下载和断开连接。 2. **SMTP与POP3的区别**:了解SMTP(Simple Mail Transfer Protocol)是用于发送邮件,而POP3用于...

    Pop3协议_收发邮件

    下面将详细介绍POP3协议的工作原理、特点以及如何通过POP3进行邮件收发。 一、POP3协议工作原理 POP3协议基于客户端/服务器模型。当用户想要检查新的邮件时,他们的邮件客户端(如Outlook、Thunderbird或Apple ...

    C#网络核心编程(Word版电子书+PPT+源代码+习题解答)

    5.2.1 POP3工作原理 121 5.2.2 邮件接收处理 123 5.3 习题5 127 第6章 网络数据加密与解密 128 6.1 对称加密 128 6.2 不对称加密 133 6.3 通过网络传递加密数据 136 6.4 Hash算法与数字签名 152 6.5 习题6 153 第7章...

    POP3客户机.zip_pop3_suddenlyp3r_windows_客户机

    它的工作原理是:当用户通过POP3客户端登录到邮件服务器时,服务器会列出所有待接收的邮件,然后客户端可以选择下载这些邮件。一旦邮件被下载,通常会被从服务器上删除,以节省服务器存储空间。不过,这取决于服务器...

    POP3.rar_pop3_pop3.

    通过这个压缩包,我们可以深入理解POP3的工作原理以及如何在实际项目中进行高级程序开发。 POP3协议主要用于下载邮件,它工作在客户端-服务器模式下。当用户想要查看邮件时,POP3客户端连接到邮件服务器,然后执行...

    Pop3邮件登陆(含SSL加密登陆)

    在“Pop3邮件登陆(含SSL加密登陆)”这个主题中,我们将深入探讨POP3协议的工作原理以及如何在编程中实现SSL加密的邮件登录。 首先,POP3主要用于客户端(如Outlook、Thunderbird等)从邮件服务器接收邮件。它遵循...

    VC邮件收发pop3类

    首先,理解POP3协议的基本工作原理至关重要。POP3协议主要用于客户端从邮件服务器获取邮件。当用户想要查看新邮件时,客户端会与服务器建立连接,验证身份后,服务器会将邮件列表发送给客户端,然后客户端可以选择...

Global site tag (gtag.js) - Google Analytics