IMAP指令简介篇_架构师-老码哥的博客-程序员秘密_imap指令

技术标签: IMPA  


IMAP指令简介篇

 

今天先来简单的总结一下IMAP指令。 

    先来扫扫盲神马是IMAP,我觉得wiki的解释是最贴近的,先来看看定义:http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol 

IMAP也是斯坦福大学参与制订的,可见这所高校为互联网发展做出了太多贡献。又再次感慨国内的高校真应该多学习学习。 

 

当谈及协议时我一般学习的步骤是这样的: 

1.wiki一下定义(主要是应用领域、历史等) 

2.看一下是否是标准协议,如果是看一下RFC定义(这也是了解协议的必须步骤) 

3.最后看一下标准的实现(比如:IMAP我就抓了一大堆OUTLOOK交互包,分析协议内容) 

 

    想必一般童鞋操作邮件时都熟悉了POP3协议吧,先来看看POP3协议的指令集: 

USER、PASS、LIST、STAT、UIDL、RETR、TOP、RSET、DELE、NOOP、QUIT、APOP 

    再来看看IMAP的指令集: 

CAPABILITY、NOOP、LOGOUT、STARTTLS、AUTHENTICATE、LOGIN、SELECT、EXAMINE、CREATE、DELETE、RENAME、SUBSCRIBE、UNSUBSCRIBE、LIST、LSUB、STATUS、APPEND、CHECK、CLOSE、EXPUNGE、SEARCH、FETCH、STORE、COPY、UID 

 

    看到了IMAP指令比POP3多出很多,当然这也是因为IMAP是总结了POP3协议的不足在此基础上进行优化的协议,复杂繁多也正式能力的表现,IMAP做了很多POP3无法做到的事情,协议也同样导致了服务器与客户端实现的复杂度,和整个业界的认可与推广,还好的就是IMAP已经在各大邮件服务器得到了实现,这里GMAIL功不可没啊。 

 

    这篇文章是IMAP指令的简介,还是先来看看指令的功能,方便快速了解。 

介绍指令功能前,还要弄清楚IMAP协议的几种状态: 

Not Authenticated State: 非认证状态

    这个状态是还没有进行鉴权的过程,就是还没有输入用户名与密码进行校验的状态,这种 

状态下你不能对自己数据进行操作,例如你想看一下文件夹列表,或是某封邮件等。

Authenticated State: 认证状态

    这个状态是已经输入了用户名密码并且已经得到服务器验证通过,此状态下才能对你的数据进行操作,这也比较好理解。
 

Selected State: 选择状态

    这个状态的前提条件是"认证状态",至于为什么要有这个状态呢,可以理解成是对数据的直接操作,例如:选择一封邮件,将一封邮件设置已读等。 

指令简介:

指令 功能

CAPABILITY 服务器响应能力描述,此指令个人理解是当前邮件服务器的能力。

NOOP 与服务器保持连接,可以用来新邮件或者消息状态更新。

LOGOUT 终端服务器连接
 

STARTTLS 与服务器使用TLS进行交互

AUTHENTICATE 与服务器的认证机制

LOGIN 鉴权登陆,输入用户名与密码

SELECT 选择文件夹

EXAMINE 选择文件夹只读方式

CREATE 创建一个文件夹

DELETE 删除一个文件夹

RENAME 重命名一个文件  www.2cto.com  

SUBSCRIBE 订阅指定的邮箱地址

UNSUBSCRIBE 取消订阅

LIST 返回详细的文件夹列表

LSUB 返回订阅的邮箱地址列表
 

STATUS 请求返回指定邮箱文件夹的状态

APPEND 追加一个状态,例如可以保存一封新的邮件

CHECK 检查当前服务器状态(例如:磁盘,内存等)

CLOSE 永久删除所有消息

EXPUNGE 永久删除所有消息,与CLOSE不同的是,将返回每个消息标识

SEARCH 类似linux系统find命令,功能很强大可以按照不同条件搜索邮件

FETCH 检索与消息相关数据,例如:获取正文

STORE 改变与消息相关数据,例如:设置邮箱已读、删除状态等

COPY 拷贝指定的消息

UID 返回UID列表用于fetch

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37638009/article/details/103244597

智能推荐

电商风控赛事亚军方案分享!_Datawhale的博客-程序员秘密

Datawhale干货作者:许汝超,广州大学,Datawhale成员本次 Apache Flink 极客挑战赛暨 AAIG CUP——电商推荐“抱大腿”攻击识别 赛题以电商推荐反作弊为...

spring security 的 logout 功能_高尔夫golf的博客-程序员秘密_j_spring_security_logout

转载自:http://lengyun3566.iteye.com/blog/1114464理解退出功能术语退出(Logout)指的是用户使其安全session失效的一种操作。一般来说,用户在退出后,将会被重定向到站点的非安全保护的界面。让我们在站点的页头部分添加一个“Log Out”的链接,并再次访问站点以了解其如何实现功能的。在站点页头上添加“Log Out”链接

监控之ganglia使用_weixin_33882443的博客-程序员秘密

总结了一些ganglia使用中的问题####################################删除节点当监控的节点里有一个服务器要移到别的分组里或删除时,原来的界面里还是一直会显示那台主机donw状态。要想去除,重启ganglia服务没用1、把主服务关闭service gmetad stop2、把删除的那个节点的gmond服务关闭 service gmond stop3、把分组...

C语言文件操作之fgets()_lixiang201101的博客-程序员秘密

来说一说fgets(..)函数。    原型  char *  fgets(char * s, int n,FILE *stream);    参数:         s: 字符型指针,指向存储读入数据的缓冲区的地址。         n: 从流中读入n-1个字符         stream : 指向读取的流。   返回值:          1. 当n     

【http post】post传输数据大小_秦拿希的博客-程序员秘密_post传输数据大小

之前知道get请求对url请求长度有限制,post请求没有限制。今天在做程序的时候遇到了这个问题。场景:我需要将前端生成的Svg图片转化base64生成字符串传入后台,后台根据字符串解码生成到PPT里面。附:前端将svg生成图片的工具:saveSvgAsPng.js第三方js。https://github.com/exupero/saveSvgAsPng,后端将数据图片生成PPT使用的是P...

Vue+OpenLayers学习系列(九)Vue+OpenLayers小案例(长度测量、面积测量、坐标定位、坐标获取)_爱睡懒觉的老舅的博客-程序员秘密_vue + openlayers小demo

很早之前做的一个例子,最近想复习下Vue+OpenLayers的使用案例,所以发出来供大家下载vue-ol-demo-master本Demo的功能包括:地图展示、地图放大缩小、添加鹰眼、长度测量、面积测量、坐标获取、坐标定位。其中测量工具实现的方法逻辑单独放在src/shared/tools/measure.js文件里面,避免放到组件里面太大太冗余。运行方法:#下载依赖npm install#运行npm run serve...

随便推点

【笔记】(python)写入文件:写入空文件、写入多行、附加到文件_python写入文件_菜菜努力码的博客-程序员秘密

文章目录一、写入文件1.写入空文件2.写入多行3.附加到文件一、写入文件1.写入空文件2.写入多行3.附加到文件

九月5G你选谁?瀑布屏外加透明全景屏来袭,OPPO5G手机配置大曝光_翻译小达人的博客-程序员秘密

OPPO作为国产手机四巨头之一,在5G手机的研发上投入了大量的人力物力,早在今年四月份,OPPO的首批5G手机OPPO Reno就已经在国外发售,同时在国内与华为一起作为首批获得5G入网设备许可证的手机厂商,华为的5G手机已经开始发布会,并在8月中旬开始发售,那么OPPO Reno系列的国行版大概什么时候会发布呢?小编估计最快也要今年的第三季度才行,虽然在国外最先发行,可是国内才是OPPO手机...

如何使用synplify综合ISE Core Generate生成的IP核_Chris9191的博客-程序员秘密_synplify综合xilinxip

Xilinx的ISE软件有自带的综合工具XST,但是我们有时候需要使用第三方的综合工具(例如Synopsys的Synplify Pro),这时候就需要在synplify上综合完之后生成edif网表文件,然后作为ISE的输入文件进行Implement。如果工程中需要ISE Core Generate生成的IP核,那么如何在synplify上综合它呢?

opengl读取OBJ模型文件_yz960611的博客-程序员秘密_opengl读取obj文件

原文地址:http://blog.sina.com.cn/s/blog_6db61ebf01017325.html要顺利读取obj模型文件,先要了解obj文件的格式。OBJ文件格式是非常简单的,它以纯文本的形式存储了模型的顶点、法线和纹理坐标和材质使用信息。OBJ文件的每行的格式如下:前缀参数1参数2参数3 ...其中,前缀标识了

几何学___AiR_H的博客-程序员秘密

1、余弦定理如下图所示,在△ABC中,余弦定理可表示为:余弦定理的三个证明转自:http://www.matrix67.com/blog/archives/2324证明1:证明2:证明三

VIDIOC_S_CROP 理解_kickxxx的博客-程序员秘密_vidioc_s_crop

VIDIOC_S_CROP ioctl会传入一个v4l2_crop给驱动程序 crop.c.left, crop.c.top. crop.c.width, crop.c.height定义了一个长方形区域,这个区域是capture或者overlay模式下的取景范围,举个例子,图片的