研究邮件时关于Pop3协议的几种处理状态总结如下:

1、基本操作

  初始时,服务器通过侦听TCP端口110开始POP3服务。当客户主机需要使用服务时,它将与服务器主机建立TCP连接。当连接建立后,POP3发送确认消息。客户和POP3服务器相互(分别)交换命令和响应,这一过程一直要持续到连接终止。

  POP3命令由一个命令和一些参数组成。所有命令以一个CRLF对结束。命令和参数由可打印的ASCII字符组成,它们之间由空格间隔。命令一般是三到四个字母,每个参数却可达40个字符长。

  POP3响应由一个状态码和一个可能跟有附加信息的命令组成。所有响应也是由CRLF对结束。现在有两种状态码,"确定" ("+OK")和"失败" ("-ERR")。

  对于特定命令的响应是由许多字符组成的。在这些情况中,下面一一表述:在发送第一行响应和一个CRLF之后,任何的附加信息行发送,他们也由CRLF对结束。当所有信息发送结束时,发送最后一行,包括一个结束字符(十进制码46,也就是".")和一个CRLF对。如果信息中的任何一行以结束字符开始,此行就是通过在那一行预先装入结束而进行字符填充的。因此,多行响应由五个CRLF.CRLF 结束。当检测多行响应时,客户检测以确认此行是否以结束字符开始。如果是的,而且其后的字符不是CRLF,此行的第一个字符(结束字符)将被抛弃;如果其后紧跟CRLF,从POP服务器来的响应终止,包括.CRLF 的行也不被认为是多行响应的一部分了。

  在生命周期中,POP3会话有几个不同的状态。一旦TCP连接被打开,而且POP3服务器发送了确认信息,此过程就进入了"确认"状态。在此状态中,客户必须向POP3服务器确认自己是其的客户。一旦确认成功,服务器就获取与客户邮件相关的资源,此时这一过程进入了"操作"状态。在此状态中,客户提出服务,当客户发出QUIT命令时,此过程进入了"更新"状态。在此状态中,POP3服务器释放在"操作"状态中取得的资源,并发送消息,终止连接。

  POP3服务器可以拥有一个自动退出登录的记时器。此记时器必须至少可以记录10分钟。这样从客户发送的消息才可能刷新此记时器。当记时器失效时,POP3会话并不进入"更新"状态,而是关闭TCP连接,而且不删除任何消息,不向客户发送任何响应。

2、"确认"状态

  一时TCP连接由POP3客户打开,POP3服务器发送一个单行的确认。这个消息可以是由CRLF结束的任何字符。例如,它可以是:

    S: +OK POP3 server ready

  注意:这个消息是一个POP3应答。POP3服务器应该给出一个"确定"响应作为确认。

  此时POP3会话就进入了"确认"状态。此时,客户必须向服务器证明它的身份。在文档中介绍两种可能的处理机制,一种是USER和PASS命令,另一种是在后面要介绍的APOP命令。

  用USER和PASS命令进行确认过程,客户必须首先发送USER命令,如果POP3服务器以"确认"状态码响应,客户就可以发送PASS命令以完成确认,或者发送QUIT命令终止POP3会话。如果POP3服务器返回"失败"状态码,客户可以再发送确认命令,或者发送QUIT命令。

  当客户发送了PASS命令后,服务器根据USER和PASS命令的附加信息决定是否允许访问相应的存储邮件。

  一旦服务器通过这些数据决定允许客户访问储存邮件,服务器会在邮件上加上排它锁,以防止在进入"更新"状态前对邮件的改变。如果成功获得了排它锁,服务器返回一个"确认"状态码。会话进入"操作状态",同时没有任何邮件被标记为删除。如果邮件因为某种原因不能打开(例如,排它锁不能获得,客户不能访问相应的邮件或者邮件不能进行语法分析),服务器将返回"失败"状态码。在返回"失败"状态码后,服务器会关闭连接。如果服务器没有关闭连接,客户可以重新发送确认命令,重新开始,或者发送QUIT命令。

  在服务器打开邮件后,它为每个消息指定一个消息号,并以八进制表示每个消息的长度。第一个消息被指定为1,第二个消息被指定为2,以此类推,第N个消息被指定为N。在POP3命令和响应中,所以的消息号和长度以十进制表示。

4、"操作"状态

  一旦客户向服务器成功地确认了自己的身份,服务器将锁住并打开相应的邮件,这时POP3会话进入"操作"状态。现在客户可以重复下面的POP3命令,对于每个命令服务器都会返回应答。最后,客户发送QUIT命令,会话进入"更新"状态。

下面是在"操作"状态中可用的命令:

5、"更新"状态

  当客户在"操作"状态下发送QUIT命令后,会话进入"更新"状态。(注意:如果客户在"确认"状态下发送QUIT后,会话并不进入"更新"状态。)

  如果会话因为QUIT命令以外的原因中断,会话并不进入"更新"状态,也不从服务器中删除任何信件。

目前市场中邮件加密产品,大多需要重新注册一个邮箱,或者重新部署一套邮件系统,导致原来的邮箱不能用,也就是说需要改变用户习惯,对于大型公司来说邮件系统升级比较困难。

选择对于用户透明的邮件加密产品是个不错的选择,比如天御云安推出的隐秘邮在确保邮件内容加密的同时,部署对于用户也是透明的,可以说非常人性化。

网址:https://mail.tyyunan.com/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69911143/viewspace-2640451/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69911143/viewspace-2640451/

Pop3协议的几种处理状态的总结相关推荐

  1. 关于Pop3协议的几种处理状态的简述

    研究邮件时关于Pop3协议的几种处理状态总结如下: 1.基本操作 初始时,服务器通过侦听TCP端口110开始POP3服务.当客户主机需要使用服务时,它将与服务器主机建立TCP连接.当连接建立后,POP ...

  2. pop3协议的几种状态

    研究邮件时关于Pop3协议的几种处理状态总结如下: 1.基本操作 初始时,服务器通过侦听TCP端口110开始POP3服务.当客户主机需要使用服务时,它将与服务器主机建立TCP连接.当连接建立后,POP ...

  3. java smtp.126.com_Java Mail---SMTP、POP3协议-DOS下手动收发邮件演示过程

    转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自 E-Mail协议简介: 邮件服务器,按照提供的服务类型,可以分为发送邮件的服务器我接收邮件的服务器. 发送 ...

  4. HTTP协议详解1----请求状态与响应

    HTTP协议详解1 HTTP协议是一种无状态的协议,无状态是指web浏览器与web服务器之间不需要建立持久的连接,每当客户端发出请求(request),然后web服务返回响应(response),连接 ...

  5. java pop3 接收邮件_JavaMail使用POP3协议接收并解析电子邮件

    JavaMail使用POP3协议接收并解析电子邮件 代码片段:public static void main(String[] args) throws Exception { receive(); ...

  6. HTTP协议和几种常见的状态码

    前言:明知山有釜,偏向釜山行-----电影<釜山行> ------------------------------------------------------------------- ...

  7. ACPI协议所定义的计算机电源的几种管理状态(S、G、C)

    ACPI协议所定义的计算机电源的几种管理状态 G状态(Global System State) S状态(Sleep state) C状态(CPU power state) P状态(CPU Perfor ...

  8. 【计算机网络】应用层 : 电子邮件 ( SMTP 协议 | MIME 协议 | POP3 协议 | IMAP 协议 | 基于万维网的电子邮件 )

    文章目录 一.电子邮件信息格式★ 二.电子邮件系统 组成 结构 ★ 三.SMTP 协议 ( 简单邮件传送协议 ) ★ 四.SMTP 协议 连接建立流程 五.SMTP 协议 邮件发送 流程 六.SMTP ...

  9. POP3协议命令原始码及工作原理-PHP教程,邮件处理

    一 简介: 1. pop适用于c/s结构的脱机模型的电子邮件协议,目前已发展到第三版,称pop3.脱机模型即不能在线 操作,不像imap4(netscape支持imap4) 2. 当客户机与服务器连接 ...

最新文章

  1. java 自定义注解 解析_java自定义注解
  2. ASP.NET画图控件 Chart Control 免费控件
  3. Java调用 shell脚本阻塞
  4. tensorflow.reshap(tensor,shape,name)的使用说明
  5. Android Telephony分析(四) ---- TelephonyManager详解
  6. powerdesigner中如何在自动生成建表SQL时添加模式名schema
  7. 基于事件驱动架构构建微服务第7部分:在仓储上实现事件溯源
  8. java正则表达式验证密码_最新密码验证正则表达式
  9. Android RecyclerView (一) 使用完全解析
  10. 软件工程概论课堂作业3
  11. 对比损失的PyTorch实现详解
  12. YoloV5实战:手把手教物体检测
  13. 使用三级缓存解决内存溢出
  14. java 鼠标动眼睛动_js动画_看着鼠标移动的眼球_眼睛_跟着随鼠标移动
  15. 威纶触摸屏与台达DVP系列PLC通信的参数设置和连接电缆
  16. 求最大公约数,最小公倍数
  17. openwrt web升级功能介绍
  18. curl CURLE_COULDNT_CONNECT
  19. #125 Backpack II
  20. 微型计算机的典型结构式,试卷正文1新.doc

热门文章

  1. 算法题 容斥原理-能被整除的数(Python)
  2. IT从业人员必须知道的577个网站,小牛导航(super-nb)
  3. Grid布局实现网页自适应
  4. 从零手写操作系统之RVOS内存管理模块简单实现-02
  5. 秒杀的性能问题和超卖
  6. iOS KVO监听readonly属性
  7. Ubuntu20.04安装synergy(Windows和linux共用一套键鼠)
  8. WEB数据储存的几种方式
  9. Google云计算之Chubby
  10. unity打成aar上传到maven库的工具