http://www.cnblogs.com/crystalray/p/3302121.html

POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议是TCP/IP协议族中的一员,,由RFC 1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。

  具体协议内容可以查阅:http://www.ietf.org/rfc/rfc1939.txt 中文版:http://www.cnpaf.net/Class/POP3/200408/122.html

  当客户机与服务器建立联系时,一旦客户机提供了自己身份并成功确认,即由认可状态转入处理状态,在完成相应的操作后客户机发出quit命令,则进入更新状态,更新之后最后重返认可状态。如下:
            等待连接                         身份确认                            quit命令
            ——  |AUTHORIZATION|————— |TRANSACTION|——————|UPDATE|
            |________________________________________________________|
            重返认可状态
 
  POP3命令码如下:
  命令               参数                  状态                          描述
  ----------------------------------------------------------------------------
  USER          username          AUTHORIZATION     此命令与下面的pass命令若成功,将导致状态转换
  PASS          password          AUTHORIZATION      
  APOP          Name Digest      AUTHORIZATION     Digest是MD5消息摘要
  ----------------------------------------------------------------------------
  STAT         None                 TRANSACTION     请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数
  UIDL          [Msg#]              TRANSACTION     返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的
  LIST          [Msg#]               TRANSACTION     返回邮件数量和每个邮件的大小
  RETR         [Msg#]              TRANSACTION     返回由参数标识的邮件的全部文本
  DELE         [Msg#]              TRANSACTION     服务器将由参数标识的邮件标记为删除,由quit命令执行
  RSET         None                 TRANSACTION     服务器将重置所有标记为删除的邮件,用于撤消DELE命令
  TOP           msg n                TRANSACTION     服务器将返回由参数标识的邮件前n行内容,n必须是正整数
  NOOP         None                 TRANSACTION     服务器返回一个肯定的响应
  ------------------------------------------
  QUIT          None                  UPDATE            
 
这里使用telnet命令来对126邮箱进行操作参数分别是邮件服务器地址和端口(110)
 
 
使用user 用户名 pass 密码进行登录,也可以采用APOP方式登录。
使用stat命令能够得到邮箱的邮件信息,邮件数和大小。
 
list命令将显示整个邮箱的邮件的编号n和大小(若未指定编号)
 
uidl命令返回邮件的唯一标识符
 
top命令指定返回n号邮件的前m行,邮件内容分析参见前一篇,邮件MIME格式分析
 
 
 
retr 命令将收取指定编号的邮件的完整内容。
 
dele命令,在此时并不会删除邮件,只有在QUIT时才会删除,任何邮件的删除都必须在quit命令发出后对已标记为删除的邮件执行删除操作,若发生访问中断,没有发出quit命令,那么虽然执行过dele命令,邮件仍不会被删除。
rset命令,取消删除邮件的命令,重置邮件状态
 
总结POP3协议的优势和不足

POP作为Internet上邮件的第一个离线协议标准,允许用户从服务器上把邮件下载到本地主机上,同时删除保存在邮件服务器上的邮件,从而使用户不必长时间地与邮件服务器连接,很大程度上减少了服务器和网络的整体开销。
但 POP3有其天生的缺陷,即当用户接收电子邮件时,所有的信件都从服务器上清除并下载到客户机。在整个收信过程中,用户无法知道邮件的具体信息,只有照单全收入硬盘后,才能慢慢浏览和删除。这使用户几乎没有对邮件接收的控制决定权。一旦碰上邮箱被轰炸,或有比较大的邮件,用户不能通过分析邮件的内容及发信人地址来决定是否下载或删除,从而造成系统资源的浪费。而IMAP协议不但可以克服POP3的缺陷,而且还提供了更强大的功能。

POP3命令与分析的更多相关文章

  1. sodu 命令场景分析

    摘自:http://www.cnblogs.com/hazir/p/sudo_command.html sudo 命令情景分析   Linux 下使用 sudo 命令,可以让普通用户也能执行一些或者全 ...

  2. 使用python 模仿mybinlog 命令 二进制分析mysql binlog

    出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该声明. ...

  3. nice命令兼容性分析实例

    背景 产品实验室出现一例日志转储问题,经定位发现当前版本号没有提供nice命令,而cron拉起定时任务时,却调用了nice命令,对定时任务做优先级调整. 毫无疑问兴许版本号须要提供nice命令,可是是 ...

  4. 基于linux与busybox的reboot命令流程分析

    http://www.xuebuyuan.com/736763.html 基于Linux与Busybox的Reboot命令流程分析 ********************************** ...

  5. sudo 命令情景分析

    Linux 下使用 sudo 命令,可以让普通用户也能执行一些或者全部的 root 命令.本文就对我们常用到 sudo 操作情景进行简单分析,通过一些例子来了解 sudo 命令相关的技巧. 情景一:用 ...

  6. linux 命令free -m 命令结果分析

    free -m 命令详解 free -m 分析系统内存使用情况:

  7. 【转】sudo命令情景分析

    文章转自:http://www.cnblogs.com/hazir/p/sudo_command.html Linux 下使用 sudo 命令,可以让普通用户也能执行一些或者全部的 root 命令.本 ...

  8. 命令行分析组件IKende.CLI

    IKende.CLI是一款开源的命令行分解组件,它可以简地把命令行字符转换成命令对象.在编写CLI应用的时候经常要对命令字符进行繁锁的分解和转换工作,而IKende.CLI的存也是为了解决以上问题而产 ...

  9. linux中free命令内存分析

    Mem(物理内存分配情况)行 total:表示物理 内存总量 used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用 free:未被分配的内存 s ...

随机推荐

  1. [原创] MSP430G2系列图形化编程相关资料

    1.TI官方工具GRACE以及CCS介绍以及下载地址:http://www.ti.com.cn/tool/cn/grace 2.教程资料: ①手把手教你使用GRACE:   http://www.do ...

  2. vegan 包进行 Bioenv 分析

    Bioenv 分析通过 计算样本群落结构的距离矩阵和 环境因子的距离矩阵,计算两个距离之间的相关系数,挑选出最佳的环境因子组合: 默认情况下,计算 群落结构的距离矩阵时, 使用 Bray-Curtis ...

  3. springboot+shiro整合教程

    进阶教程: 1. springboot+shiro+redis(单机redis版)整合教程 2. springboot+shiro+redis(集群redis版)整合教程 3.springboot+s ...

  4. mysql 找不到或无法加载已注册的 .Net Framework Data Provider和Unable to find the requested .Net Framework Data Provider. It may not be installed解决

    需要安装 mysql-connector-net-6.7.4.msi 在C盘安装mysql的位置找到三个DLL,复制到Bin文件夹下 在Web.config文件中添加对应配置: <system. ...

  5. 【WP8】线程安全的StorageHelper

    14-08-29 12:32更新:修复StorageHelper部分bug WP8以后提供了StorageFile的方式访问文件,StorageFile对文件的操作只提供了异步的支持,包括WP8.1 ...

  6. mysql查询某个库的表个数

    SELECT COUNT(1) FROM information_schema.tables WHERE table_schema = 'leleli'; --解释:数据库名叫“leleli”

  7. 【QT】Cannot find file: untitled.pro,项目路径不要包含中文。

    Cannot find file: D:\文件及下载相关\文档\untitled\untitled.pro. 17:01:45: 进程"D:\Englishpath\QT5.9.3\5.9. ...

  8. MVC输出字符串常用四个方式

    "); ";//@Html.Raw(s1); "); ";//@String.fomart(s3); 要MVC的Razor视图输出字符串的常用几个方式 记录下 ...

  9. Linux下的ssh远程访问

    准备工作:首先需要在windows系统中安装虚拟机,并在虚拟机中安装好linux操作系统,这里安装的是vmware player虚拟机和ubuntu版本的操作系统.关于该部分的安装在作者的其他经验中有 ...

  10. PHP 数组current和next用法

    1.current   当前数组 <?php $transport = array('foot', 'bike', 'car', 'plane'); $mode = current($trans ...