邮件访问协议!IMAP协议解析
今天我们又来讲讲邮件协议,如果您曾经设置过电子邮件帐户,则可能会询问您要使用哪种电子邮件协议(POP或IMAP),对于POP,我们在这篇文章上有讲解《pop3协议解析及代码实现》。当我们所做的选择那种电子件协议,将对您发送,接收和以其他方式使用电子邮件的体验有一定影响。
POP(邮局协议)曾经是电子邮件协议中最流行的类型,但如今,IMAP是大多数人的首选。在下面详细了解IMAP是什么,以及Wireshark抓包分析IMAP协议。
什么是IMAP?
IMAP代表Internet消息访问协议。这是一个应用程序层协议,用于接收来自邮件服务器的电子邮件。它是最常用的协议。
IMAP协议还遵循客户端/服务器模型。一方面,我们有一个IMAP客户端,它是在计算机上运行的进程。另一方面,我们有一个IMAP服务器,它也是在另一台计算机上运行的进程。两台计算机都通过网络连接。
IMAP协议在TCP / IP 传输层上,这意味着它隐式使用了该协议的可靠性。一旦在IMAP客户端和IMAP服务器之间建立了TCP连接,默认情况下,IMAP服务器将侦听端口143,但是此端口号也可以更改。
默认情况下,IMAP使用两个端口:
- 端口143:这是未加密的IMAP端口。
- 端口993:当IMAP客户端希望通过IMAP安全连接时,将使用此端口。
为什么我们应该使用IMAP?
- 与POP不同,IMAP允许您访问,组织,阅读和分类电子邮件,而无需先下载它们。
- IMAP非常快速和高效。服务器还会保留您发送的所有消息的记录,从而使您可以从任何地方访问已发送的消息。
- IMAP不会将邮件从服务器移动到您的计算机,而是将计算机上的电子邮件与服务器上的电子邮件同步。
通过示例了解IMAP协议
IMAP使用传输控制协议(TCP)进行通信,以确保数据的传递并按顺序接收。IMAP在众所周知的端口(即端口号143)上侦听来自IMAP客户端的传入连接请求。IMAP协议将所有设备与主服务器同步。
假设我们有上图所示的三种设备:笔记本,智能机和平板电脑。如果所有这些设备都在访问同一邮箱,则它将与所有设备同步。
在这里,同步意味着当一台设备打开邮件时,它将在所有其他设备上标记为已打开,如果我们删除该邮件,那么该邮件也将从所有其他设备上删除。因此,我们在所有设备之间进行了同步。
在IMAP中,我们可以看到所有文件夹,例如垃圾邮件,收件箱,已发送邮件等。我们还可以创建自己的文件夹,称为自定义文件夹,该文件夹将在所有其他设备上可见。
IMAP协议常见指令讲解
下面我们来讲解IMAP协议命令的快速列表,以及常见指令。
Any State
- capability
capability指令主要是获得服务器功能 。
- noop
noop指令主要是 用于检查新邮件并防止连接超时 。
Non-Authenticated State
- authenticate
authenticate指令主要做SASL认证 。
- login
登录可以使用引号将空格和特殊字符引起来。然后必须用\来转义“
Authenticated State
append:将邮件添加到特定邮箱
create:创建新邮箱
delete:删除邮箱
examine:在只读模式下选择
list:邮箱名称列表
lsub:用户已订阅的邮箱列表
select:这样邮箱中的邮件就可以
被读/写
status:获取邮箱状态
subscribe:到新邮箱
Selected State
check:用来在邮箱设置一个检查点,类似NOOP
close:从当前删除消息选定的邮箱已删除旗帜
copy:将邮件从当前复制到另一个邮箱
fetch:获取邮件的相关数据
search:返回消息列表,搜索标准已详细说明并使用了密钥用于不同的消息部分
store:设置/取消设置消息标志
uid:使用UID号而不是消息序列号
IMAP协议解析代码实现
int main(int argc, char* argv[])
{char errbuf[1024];pcap_t *desc = 0;char *filename = argv[1];if (argc != 2){printf("usage: ./dissect_imap [pcap file]\n");return -1;}return 0;
}
编译运行:
总结
使用IMAP有几个优点。
- IMAP允许您从任意位置通过任意数量的不同设备访问电子邮件。
- IMAP仅在您单击时下载一条消息。因此,您无需等待所有新消息从服务器下载就可以阅读它们。
- 附件不会随IMAP自动下载。因此,您可以更快地检查邮件,并更好地控制打开哪些附件。
参考:https://tools.ietf.org/html/rfc3501
欢迎关注微信公众号【程序猿编码】,需要IMAP源码和报文的添加本人微信号(17865354792)
邮件访问协议!IMAP协议解析相关推荐
- 【计算机网络】应用层 : 电子邮件 ( SMTP 协议 | MIME 协议 | POP3 协议 | IMAP 协议 | 基于万维网的电子邮件 )
文章目录 一.电子邮件信息格式★ 二.电子邮件系统 组成 结构 ★ 三.SMTP 协议 ( 简单邮件传送协议 ) ★ 四.SMTP 协议 连接建立流程 五.SMTP 协议 邮件发送 流程 六.SMTP ...
- 邮件服务器imap有推送吗,为什么我的邮件服务器支持imap协议还收不到邮件内容...
满意答案 qk2523 2017.04.05 采纳率:48% 等级:7 已帮助:163人 支持imap协议和能不能收到邮件没有什么关系. 1.使用Web方式可以正常接收邮件,但使用Outlook ...
- 【iMessage苹果家庭推源码】软件安装使用IMAP协议接收邮件
推荐内容IMESSGAE相关 作者推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者推荐内容 1.家庭推内容 *** 点击即可查看作者要求内容信息 作者推荐内容 2.相册 ...
- telnet中使用IMAP协议查看收件箱
问题 使用命令telnet进去查看收件箱. 步骤 # 使用telnet登录邮件服务器,这里使用的imap协议,不是pop3协议 telnet mail.xxx.com 143 Trying 100.2 ...
- 关于邮箱的 POP 协议、imap 协议、imap 协议简单讲解
[三种邮箱协议说明] 以 263 邮箱为例 POP3 接收邮件协议(邮局协议),端口:110 SLL 加密类型端口:995.较为常见的客户端 如 outlook.foxmail 都可以使用,使用客户端 ...
- IMAP 称作交互邮件访问协议
Internet Message Access Protocol(缩写为IMAP,以前称作交互邮件访问协议)是一个应用层协议,用来从本地邮件客户端(如MicrosoftOutlook. Outlook ...
- Python实现IMAP协议接收并解析邮件内容
Python实现IMAP协议接收并解析邮件内容 **前言:**昨天接到这个任务,然后搜索了很多资料和博客去看,这些资料链接我会放在本文后面 一.开通IMAP服务 我以网页邮箱(163邮箱为例) 1.登 ...
- IMAP(Internet Message Access Protocol, 交互邮件访问协议)简介
1.简介 Internet Mail Access Protocol(缩写为IMAP,以前称作交互邮件访问协议(interactive mail access protocol))IMAP是斯坦福大学 ...
- IMAP协议定时监听接收邮件(QQ邮箱、网易邮箱都可)
前面已介绍过SMTP协议发论文:qq邮箱,网易邮箱,smtp邮箱发邮件 本文将继续介绍如何用IMAP协议收邮件. IMAP协议:即Internet Message Access Protocol(互联 ...
最新文章
- python urllib.request 爬虫 数据处理-python之爬虫(三) Urllib库的基本使用
- Ubuntu16.04怎样安装Python3.6
- spring boot 整合RESTFUL服务
- 如何删除 AWS 资源以及关闭账户(来自亚马逊官方提供文档,记录一下方便查看)
- Nginx+Tomcat负载均衡访问网页出现报错HTTP Status 400 – 错误的请求
- RT-Thread Pin设备驱动API应用介绍
- Spring中的后置处理器BeanPostProcessor讲解
- C#面向对象17 23种设计模式
- C++编译器默默编写并调用哪些函数
- 基于Java、Jsp实现购物车的功能
- termux如何下载metasploit(msf)
- Word 内容被锁定的两种解决方法
- 小米4充不了电处理办法(图文)小米4不能充电的维修教程
- 开车的26条教训!开车的人一定看看!
- MySql数据库入门
- 使得法国文化公司的根深蒂固
- 题目:606.根据二叉树创建字符串
- 220多款H5的手机端小游戏源码下载 - html+javascript 开发网页小游戏开源源码大合集
- 数字信号处理实验matlab版答案刘舒帆,数字信号处理实验(MATLAB版) 刘舒帆,费诺,陆辉 西安电子科技大学出版社 9787560620060...
- Knowledge Graph表示学习--TransE系列
热门文章
- 实战:搭建高效率生鲜B2B平台八大模块及技术要求
- Unity音频可视化
- 面积计算9860SD计算器程序(好用就用,不用就删-----歪XX)
- 初入python世界——python基础语法
- SDM、ESR、LBF、AAM
- Ramps 1.4升级Marlin2.0.x改12864显示屏并添加打印机箱体温度显示
- 直播美颜sdk免费版有吗?为什么美颜sdk没有免费版?
- 万里汇WorldFirst个人和企业帐户注册教程(送$25+1%提现费)
- HTML表格翻页效果-洋葱先生-杨少通
- 外包 | LBP/HOG/CNN 实现对 CK/jaffe/fer2013 人脸表情数据集分类