Pop3协议的原理

这几天搞pop3接受邮件,现在困在邮件解码这里,不过还顺便总结下心得

(1) POP3命令由一个命令和一些参数组成。所有命令以一个CRLF对结束
(2) 命令和参数由可打印的ASCII字符组成,它们之间由空格间隔 如user username(注意,连上去后,有时要大写USER,有时要小写user)
(3) POP3响应由一个状态码("确定" ("+OK")和"失败" ("-ERR")) 和一个可能跟有附加信息的命令组成。所有响应也是由CRLF对结束
(4) 如果有附加信息时,当所有信息发送结束时,发送最后一行,包括一个结束字符(十进制码46,也就是".")和一个CRLF对。 
(5) 在POP3协议中有三种状态,认可状态,处理状态,和更新状态。
  当客户机与服务器建立联系时,一旦客户机提供了自己身份并成功确认,即由认可状态转入处理状态,在完成相应的操作后客户机发出QUIT命令,则进入更新状态,更新之后最后重返认可状态。如下图

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

客户端可用命令列表

客户可以发出的命令列表以及含义,源自ChinaUnix

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

先打开telnet,输入open pop3.126.com 110进入126的服务器,试试上面的命令,建立对这些命令的初步认识。
剩下的就是基本的网络编程了

时间: 2024-10-29 22:20:51

Pop3协议的原理的相关文章

POP3协议命令原始码及工作原理

一 简介: 1. POP适用于C/S结构的脱机模型的电子邮件协议,目前已发展到第三版,称POP3.脱机 模型即不能在线操作,不像IMAP4(netscape支持IMAP4) 2. 当客户机与服务器连接并查询新电子邮件时,被该客户机指定的所有将被下载的邮件 都将被程序下载到客户机,下载后,电子邮件客户机就可以删除或修改任意邮件,而无需与电子邮件服务器进一步交互. 3. POP3客户向POP3服务器发送命令并等待响应,POP3命令采用命令行形式,用ASCII码 表示. 服务器响应是由一个单独的命令行

怎样接收电子邮件(POP3协议简介)

在Internet,POP3(PostOfficeProtocol3)协议通常被用来接收电子邮件.这个协议很容易学,因为它只包含12个命令(其中有3个你完全可以忽略它们的存在).这些命令被客户端计算机用来发送给远程服务器.反过来,服务器返回给客户端计算机两个回应代码.如果你还没有看本站另一篇文章-"WinsockTerminal示例程序"的话,请先阅读那篇文章,因为你需要那个程序来做实验. 运行示例程序,单击工具栏上的"Connectto"按钮.在弹出的对话框中输入

POP3协议封装类

目前互连网上,EMAIL的使用是越来越广泛了.在所有的TCP连接线路中,大概有一半的线路是用来收发EMAIL的.因此,许多网络应用程序要想离开POP3协议是不可能的. 而且,很多EMAIL系统都是使用SMTP协议来作为发送协议,而POP3协议来作为接受协议.关于这2个协议的许多资料,你可以看一下RCF821(关于SMTP的)和RCF1225(关于POP3的).虽然在WINDOWS操作系统中,有一个叫MAPI应用程序是来管理EMAIL的,但是它的功能还不够强大,不足以直接处理一些EMAIL服务.所

CISCO热备份协议的原理及应用

HSRP简介: HSRP(HOST STANDBY ROUTER PROTOCOL),又称为热备份协议.是cisco平台一种特有的技术,是cisco的私有协议.HSRP运行在UDP上,采用端口号1985. 热备份协议的原理: 该协议中含有多台路由器,对应HSRP组.该组中只有活动路由器承担转发用户流量的职责.当活动路由器失效后,备份路由器将承担该职责,称为新的活动路由器.当在一个局域网上有多个热备份组存在时,把主机分不到不同的热备份组,可以使负载得到均衡.在该协议中制定一个虚拟的IP地址作为网络

大型网站的 HTTPS 实践(一): HTTPS 协议和原理

大型网站的 HTTPS 实践(一): HTTPS 协议和原理 1 前言 百度已经于近日上线了全站 HTTPS 的安全搜索,默认会将 HTTP 请求跳转成 HTTPS.本文重点介绍 HTTPS 协议, 并简单介绍部署全站 HTTPS 的意义. 2 HTTPS 协议概述 HTTPS 可以认为是 HTTP + TLS.HTTP 协议大家耳熟能详了,目前大部分 WEB 应用和网站都是使用 HTTP 协议传输的. TLS 是传输层加密协议,它的前身是 SSL 协议,最早由 netscape 公司于 199

JavaMail学习笔记(四)、使用POP3协议接收并解析电子邮件(全)

package org.yangxin.study.jm; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream;

netty对http协议解析原理

本文主要介绍netty对http协议解析原理,着重讲解keep-alive,gzip,truncked等机制,详细描述了netty如何实现对http解析的高性能. 1 http协议 1.1 描述         标示 ASCII 描述 字符 CR  13 Carriage return (回车)  \n LF  10 Line feed character(换行) \r SP  32 Horizontal space(空格)   COLON  58 COLON(冒号) : http协议主要使用C

socket-请问http协议的原理,一直不明白传输过程

问题描述 请问http协议的原理,一直不明白传输过程 http协议的响应流如果写入一个文件,客户端接收到InputStream的时候,这个时候数据是都已经在客户端了吗,还是时时传输,如果这个时候网断了,响应流的数据去哪了? 解决方案 stream是一边发一边收,如果网络断了,两边都会报异常. 解决方案二: 客户端的OutputStream数据对应着服务器端的InputStream,发送端先将数据存储在缓冲区的,当调用OutputStream的flush或者close操作时,数据才会被发送到接收端

关于mapi、pop3协议、smtp协议的问题!请高手指点!!!

问题描述 1.请问MAPI是邮件协议还是函数接口,如果是协议的话能抓包看见吗?2.如果它是协议如何设置exchange服务器我才能抓到数据包?3.mapi和pop3协议,smtp协议有什么关系可以接发邮件不用pop3和smtp吗?4.MAPI可以优化吗?应该怎么优化? 解决方案 解决方案二:1.MAPI接口是由微软公司提供的一系列供使用者开发Mail.Scheduling.bulletinboard.communication程序的编程接口.2.3.有个imap协议,与pop3类似,也是收邮件用