IMAP指令简介篇
IMAP指令简介篇
今天先来简单的总结一下IMAP指令。
先来扫扫盲神马是IMAP,我觉得wiki的解释是最贴近的,先来看看定义:http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol
IMAP也是斯坦福大学参与制订的,可见这所高校为互联网发展做出了太多贡献。又再次感慨国内的高校真应该多学习学习。
www.2cto.com
当谈及协议时我一般学习的步骤是这样的:
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: 认证状态
这个状态是已经输入了用户名密码并且已经得到服务器验证通过,此状态下才能对你的数据进行操作,这也比较好理解。 www.2cto.com
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
上一篇: python函数式编程学习之yield表达式形式详解
下一篇: 得了前列腺炎
推荐阅读
-
python装饰器简介---这一篇也许就够了(推荐)
-
.NETCore CSharp 中级篇2-3 Linq简介
-
Vue.js 源码分析(二十二) 指令篇 v-model指令详解
-
Vue学习之路第十三篇:v-for指令
-
Vue.js 源码分析(十六) 指令篇 v-on指令详解
-
Vue学习之路第十四篇:v-for指令中key的使用注意事项
-
Vue学习之路第十五篇:v-if和v-show指令
-
python之路 第一篇 编程语言简介及数据类型
-
Java进阶篇5_SpringMVC的简介、SpringMVC的组件解析、SpringMVC的数据响应、SpringMVC获取请求数据、SpringMVC拦截器、SpringMVC异常处理机制
-
数据库之mysql篇(1)—— 数据库管理系统简介/mysql的安装、配置