赞
踩
邮件传输协议由SMTP(邮件发送协议)和POP3、IMAP(邮件读取协议)等协议组成,采用C/S(客户端/服务器)架构,使用25端口监听TCP连接实现可靠通信,基本流程与邮政系统的寄信类似,具体的过程如下。
1>发件人需要将自己的邮件内容“推给”己方的SMTP服务器(类似于你去邮局寄信)。
2>己方STMP服务器将邮件“推给”对方的SMTP服务器(类似于邮递员将你的邮局发送到对方分属的邮局)
3>收件人从本地SMTP服务器侧 “拉回”发给自己的邮件(类似于收件人从邮局将自己的信件取回)。
图1.1:邮件发送过程
SMTP基本的交互过程如图2.1所示.
图2.1:SMTP基本交互过程
(1)DNS解析是每次发送邮件必经的一个过程,先要在域名服务器处获取域名相关的IP地址。
(2)域名服务器主要分为四种:本地域名服务器;根域名服务器;顶级域名服务器;权威域名服务器。
(3)若本地域名服务器无相关域名的缓存IP,则向上级域名服务器寻求帮助。
(4)如下图3.1所示,设备发起解析请求,需要先拿到域名对应的IP地址。
图3.1:DNS解析
(1)SMTP是以TCP为基础的可靠协议,在报文交互之前需要先进行三次握手。如下图3.2所示。
(2)设备侧与DNS解析后拿到的地址(smtp.qq.com所属的IP地址)建立三次握手。为之后的邮件发送做准备。
图3.2:三次握手
(1)接收方SMTP服务器发出“220 Service ready"告诉客户端它已经准备好接收邮件。若服务器未就绪,它就发送代码421(服务器不可用)。
(2)客户发送HELO报文,并使用它的域名地址标志自己。目的是要把客户的域名通知服务器。
(3)服务器响应代码250(请求命令完成)或根据情况的其他一些代码
(4)具体交互过程如下图3.3及图3.4所示。
图3.3:建立连接
图3.4:建立连接-流追踪
(1)设备侧发送请求认证AUTH LOGTH。
(2)服务器侧回复334,表示认证服务已经就绪。
(3)设备侧发送用户名User。
(4)服务器侧回复334,表示收到用户名。
(5)设备侧发送密码PASS。
(6)服务器侧回复235表示认证通过。
(7)具体交互过程如下图3.5及3.6所示。
图3.5:认证阶段
图3.6:认证阶段-流追踪
(1)设备侧指定发件人邮箱。
(2)服务器侧回复250OK表示收到。
(3)设备侧指定发件人邮箱。
(4)服务器侧回复250OK表示收到。
(5)设备侧表示准备发送数据。
(6)服务器回复354提示发送‘.’表示邮件结束。
(7)设备侧发送邮件数据。
(8)服务器侧回复250OK表示已经发送。
(9)具体交互过程如下图3.7及图3.8所示。
图3.7:邮件发送阶段
图3.8:邮件发送阶段-流追踪
(1)设备侧回复QUIT表示退出。
(2)服务器侧发送221表示知晓。
(3)具体交互过程如下图3.9及图3.10所示。
图3.9:退出阶段
图3.10:退出阶段-流追踪
(1)SMTP是以TCP为基础的可靠协议,在报文交互结束后需要进行四次挥手断开连接,释放服务资源。
图3.11:四次挥手
(1)邮箱需要开启第三方客户端登录服务(如下以QQ邮箱为例)
第一步:登录 QQ 邮箱;
第二步:点击进入设置——账户界面,如图 4.1 所示;
第三步:分别开通 1、2、3、4 处所对应的服务;
第四步:点击 5 处,生成授权码;
图4.1:QQ邮箱开启第三方登录服务
501——参数格式错误
502——命令不可实现
503——错误的命令序列
504——命令参数不可实现
211——系统状态或系统帮助响应
214——帮助信息
220<domain>——服务器就绪
221<domain>——服务关闭
421<domain>——服务器未就绪,关闭传输信道
250——要求的邮件操作完成
251——用户非本地,将转发向<forward-path>
450——要求的邮件操作未完成,邮箱不可用
550——要求的邮件操作未完成,邮箱不可用
451——放弃要求的操作,处理过程中出错
551——用户非本地,请尝试<forward-path>
452——系统存储不足,要求的操作未执行
552——过量的存储分配,要求的操作未执行
553——邮箱名不可用,要求的操作未执行
354——开始邮件输入,以“.”结束
554——操作失败
响应码用三位数字编码表示。第一个数字给出了命令状态的一般性指示,比如响应成功、失败或不完整。总共有五种不同的状态:
1 表示服务器正确接收信息,还未处理,需要一个确认的信息。
2 表示服务器已经正确处理信息。
3 表示服务器正确接收信息,正在处理,需要进一步的信息完成该请求。
4 表示信息临时错误(比如系统繁忙),过一会再重试即可。
5 表示信息永久错误,相关的请求无法完成。
第二个数字是响应类型的分类,会提供进一步的信息:
0 表示语法。
1 表示系统状态和信息。
2 表示连接状态。
3 表示与用户认证有关的信息。
4 表示未定义。
5 表示与文件系统有关的信息。
第三个数字提供了更加详细的信息。
DNS解析的基本过程如下图4.1所示。
图4.1 DNS解析过程
(1)网络客户端就是我们平常使用的电脑,打开浏览器,输入一个域名。比如输入www.163.com,这时,你使用的电脑会发出一个DNS请求到本地DNS服务器。本地DNS服务器一般是你设备填写的DNS地址。
(2)查询www.163.com的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地DNS服务器还要向DNS根服务器进行查询
(3)根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。
(4)本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.com域服务器。.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。
(5)最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。