一、协议介绍
邮件传输协议由SMTP(邮件发送协议)和POP3、IMAP(邮件读取协议)等协议组成,采用C/S(客户端/服务器)架构,使用25端口监听TCP连接实现可靠通信,基本流程与邮政系统的寄信类似,具体的过程如下。
- 发件人将邮件发送到自己使用的邮件服务器。
- 发件人的邮件服务器将收到的邮件转发到收件人邮件服务器中的收件人邮箱。
- 收件人访问邮件服务器中自己的邮箱,获取发件人发送的电子邮件。
- 邮件发送流程如下图1.1所示。
1>发件人需要将自己的邮件内容“推给”己方的SMTP服务器(类似于你去邮局寄信)。
2>己方STMP服务器将邮件“推给”对方的SMTP服务器(类似于邮递员将你的邮局发送到对方分属的邮局)
3>收件人从本地SMTP服务器侧 “拉回”发给自己的邮件(类似于收件人从邮局将自己的信件取回)。
图1.1:邮件发送过程
二、SMTP的基本工作原理
SMTP基本的交互过程如图2.1所示.
图2.1:SMTP基本交互过程
三、以QQ邮箱为例的报文解析
1、DNS解析
(1)DNS解析是每次发送邮件必经的一个过程,先要在域名服务器处获取域名相关的IP地址。
(2)域名服务器主要分为四种:本地域名服务器;根域名服务器;顶级域名服务器;权威域名服务器。
(3)若本地域名服务器无相关域名的缓存IP,则向上级域名服务器寻求帮助。
(4)如下图3.1所示,设备发起解析请求,需要先拿到域名对应的IP地址。
图3.1:DNS解析
2、三次握手
(1)SMTP是以TCP为基础的可靠协议,在报文交互之前需要先进行三次握手。如下图3.2所示。
(2)设备侧与DNS解析后拿到的地址(smtp.qq.com所属的IP地址)建立三次握手。为之后的邮件发送做准备。