SMTP协议解释 邮件传送主要包括3个阶段详解

2018-07-05 10:45:36 出处:软件园 作者:动力软件园 责任编辑:honhole

SMTP协议解释

SMTP协议服务器的熟知端口号为25,与之前总结过的telnet协议和FTP协议类似的地方是,SMTP协议的客户端和服务器端都是通过命令和响应的形式进行交互,即SMTP客户通过命令向SMTP服务器发送操作请求,而服务器则通过3位的数字对响应的请求作出响应。SMTP规定了14条命令和21中应答信息,每条命令有4个字母组成,而每一种应答一般只有一行信息,有一个3位数字的代码开始,后面附上很简单的附加说明。


邮件传送主要包括3个阶段:建立连接、 邮件传送和 终止连接。     


建立连接阶段:


1.当SMTP客户端每隔一定时间对邮件缓存扫描一次,如发现有邮件,就使用SMTP的熟知端口号25与接收方的邮件服务器的SMTP服务器建立TCP连接。


2.接收方SMTP服务器发出“220Service ready"告诉客户端它已经准备好接收邮件。若服务器未就绪,它就发送代码421(服务器不可用)。


3.客户发送HELO报文,并使用它的域名地址标志自己。目的是:用来把客户的域名通知服务器,值得注意的是,在TCP的连接建立阶段,发送方和接收方都是通过它们的IP地址来告诉对方的。(HELO报文是最初的,用户名和密码都不加密。现在改为EHLO,用户名和密码都进行base64编码发送)


4.服务器响应代码250(请求命令完成)或根据情况的其他一些代码。




邮件传送阶段:


在SMTP客户与服务器之间建立连接后,发件人就可以与一个或多个收件人交换单个的报文了。若收件人超过一个,则下面步骤3和步骤4将重复进行。


1.客户发送MAILFROM报文介绍报文的发送者。它包括发送人的邮件地址(邮箱名和域名,如house@qq)。这个步骤是必要的:因为可以给服务器在返回差错或报文时的返回邮件地址。


2.服务器响应代码250(请求命令完成)或其他适当的代码。


3.客户发送RCPT(收件人)报文,包括收件人的邮件地址,RCPT命令的作用是:先弄清接收方系统是否已经准备好接收邮件的准备,然后才发送邮件,这样做视为了避免浪费通信资源,不至于发送了很长的邮件以后才知道是因地址错误。


4.服务器响应代码250或其他适当的代码。


5.客户发送DATA报文对报文的传送进行初始化,DATA命令表示要开始传送邮件的内容了。


6.服务器响应代码"354Start mail input: end with."或其他适当的报文(如421服务器不可用,500命令无法识别)。


7.客户用连续的行发送报文的内容。每一行的行结束时输入.,即回车换行.回车换行,表示邮件内容结束。


8.服务器响应代码(250请求命令完成)或其他适当的代码。


值得注意的是:虽然SMTP使用TCP连接试图使邮件的传送可靠,但它并不能保证不丢失邮件。也就是说,使用SMTP传送邮件只能说可以可靠地传送接收方的邮件服务器,在往后的情况就不知道了。接收方的邮件服务器也许会出故障,使收到的服务器全部丢失(在收件人读取信件之前)。


  


终止连接


在报文传送成功后,客户就终止连接。包括如下步骤:


1.客户发送QUIT命令。


2.服务器响应221(服务关闭)或其他代码。


在连接终止阶段后,TCP连接必须关闭。


(完)


广告
广告
热门软件
3333
() ()
相关文章
相关软件