网络应用层协议电子邮件协议详解

2023年 7月 30日 107.5k 0

常见的电子邮件协议有简单邮件传输协议、邮局协议、Internet邮件访问协议和多用户互联网邮件扩展协议。

1、简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)

SMTP主要负责将电子邮件从发送方传送到接收方,即对传输的规则做了规定,该协议工作在TCP协议的25号端口。

SMTP的通信模型主要集中在发送SMTP和接收SMTP上:首先针对用户发出的邮件请求,建立发送SMTP到接收SMTP的双工通信链路,接收方是相对于发送方而言,实际上它既可以是最终的接收者也可以是中间传送者。发送方负责向接收方发送SMTP命令,接收方负责接收并反馈应答。SMTP协议通信模型如下:

图片[1]-网络应用层协议-电子邮件协议详解-不念博客SMTP协议通信模型

在SMTP通信链路建立后,发送方发送MAIL命令,若接收方可以接收邮件则做出OK的应答,然后发送方继续发出PCPT命令以确定邮件是否收到,如果接收到就做出OK的应答,否则就发出拒绝接收应答。双方如此反复多次,直至邮件处理完毕。

SMTP协议共包含20个SMTP命令。如下表所示:

SMTP命令 命令说明
ATRN 支持域参数的TURN命令,用来改变在传输信道上通信程序的角色,如将发送方与接收方的角色互换。可带一个或多个域,不指定域参数时,代表所有域。
AUTH 用户认证
BDAT 二进制的DATA命令
DATA 后面将传送数据,以两个回车换行结束
EHLO 扩展的Hello命令
ETRN 将指定邮件系统队列中发给所设置的域名的邮件收取到本系统的邮件队列中,然后邮件队列程序将这些邮件分发各个接收人,从而实现邮件网关功能
EXPN 验证给定的邮箱别名是否存在,扩充邮箱列表,也常禁止使用
HELO 确认发送者
HELP 查询服务器支持什么命令
MAIL 开始一个邮件传输事务,对所有的状态和缓冲区进行初始化,最终完成将邮件数据传送到一个或多个邮箱中
NOOP 空操作,要求接收SMTP仅做OK应答
QUIT 要求接收SMTP返回一个OK应答并关闭传输
RCPT 标识单独的邮件接收者
RSET 终止处理
SAML send and mail,如果接受者在线,在接收者终端上显示信息,并发送邮件
SEND 如果接受者在线,在接收者终端上显示信息
SOML send or mail,如果接受者在线,在接收者终端上显示信息,否则发送邮件
STARTTLS 请求建立TLS安全连接
TURN 无需拆除TCP连接,客户与服务器交换角色
VRFY 校验一个用户是否存在,由于安全因素,服务器多禁止此命令

SMTP协议的每一个命令都会返回一个应答码,应答码的每一个数据都是有特定含义的,如第一位数字为2时表示命令成功,为3表示没有完成,为5表示失败。

2、邮局协议(Post Office Protocol,POP)

POP是基于C/S架构的电子邮件协议,目前发展到第三版,称POP3。POP3是把邮件从邮件服务器传输到本地计算机的协议。该协议工作在TCP协议的110端口。

POP3是因特网电子邮件第一个离线协议标准,允许用户从服务器上把邮件存储到本地主机上,同时删除保存在邮件服务器的邮件。

POP3适用于C/S结构的脱机模型,脱机模型不能在线操作,当客户机与服务器连接并查询新电子邮件时,被该客户机指定的所有被下载的邮件都将被程序下载到客户机,下载后,电子邮件客户机就可以删除或修改任意邮件,而无需与电子邮件服务器进一步交互。

POP3服务器通过侦听TCP端口110开始POP3服务。当客户主机需要使用服务时,它将与服务器建立TCP连接,当连接建立后,POP3服务器发送确认消息。客户和POP3服务器相互交换命令和响应,这一过程一直要持续到连接终止。

POP3命令由命令字和参数组成,所有命令以一个CRLF对结束。命令和参数由可打印的ACSII字符组成,它们之间由空格间隔。命令一般是3~4个字母,每个参数最长40字符。

POP3响应由一个状态码和一个可能跟有附加信息的命令组成,所有的响应也是由CRLF组成。现在有两种状态码:“确定”(“+OK”)和“失败”(“-ERR”)。

POP3服务器响应由一个单独的命令行或多个命令行组成,响应第一行以ASCII文本+OK或-ERR指出响应的操作状态是成功还是失败。在POP3协议中有三种状态:认可状态、处理状态和更新状态。

3、Internet邮件访问协议(Internet Message Access Protocol,IMAP)

IMAP提供了有选择地从邮件服务器接收邮件的功能、基于服务器的信息处理功能和共享信箱功能,目前版本为4,称为IMAP4。该协议工作在TCP协议的143号端口。

IMAP4是POP3的一种替代协议,用于可以不必下载邮件正文就可以看到邮件的标题和摘要,使用邮件客户端软件就能对服务器上的邮件和文件夹目录进行操作。

IMAP提供3中操作模式:

(1)在线方式:邮件保留在E-MAIL服务器端,客户端可以对其进行管理,其使用方法与web mail相似;

(2)离线方式:离线方式与POP3提供的服务类似,用户的电子邮件从服务器全部下载到用户计算机;

(3)断开方式:断开连接工作方式下,用户的一部分邮件被保留在服务器的一段,另一部分在用户计算机上,如果用户读取没有下载的邮件,则客户端再次与服务器建立连接,下载指定的信件;如果已经下载,则直接显示本地信件副本。

IMAP协议增强了电子邮件的灵活性,同时也减少了垃圾邮件对本地系统的直接危害,同时相对节省了用户查看电子邮件的时间,除此之外,IMAP协议可以记忆用户在脱机状态下对邮件的操作,在下一次打开网络连接时自动执行。

4、多用户互联网邮件扩展(Multipurpose Internet Mail Extensions,MIME)

MIME对传输内容的消息、附件及其他内容定义了格式,解决传输多种类型信息的困难,强化压缩和加密的能力,规定了通过SMTP协议传输非文本电子邮件附件的标准。

MIME邮件允许包括:

  • 单个消息中可含多重形式;
  • 文本文档不限制行长或全文长;
  • 可传输ASCII外的字符集,允许非英语语种的消息;
  • 多字体消息;
  • 二进制或指定应用程序文件;
  • 图像、声音、视频及多媒体消息。

MIME的安全版本(Secure/Multipurpose Internet Mail Extensions,S/MIME)设计支持邮件的加密,包括:认证、完整性保护、鉴定及数据保密等。

相关文章

如何在 Linux 中使用 logname 命令?
为什么有 HTTPS?HTTPS 如何实现安全通信?
HTTPS的TSL握手流程是什么
华为无线网络射频调优及WLAN跨VLAN的三层漫游示例
502错误是什么、应该怎么排查?
HTTP3为什么抛弃了经典的TCP,而选择QUIC

发布评论