MATP协议

定义

SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知,使用25端口。

过程

(1)建立TCP 连接。
(2)客户端发送HELO命令以标识发件服务器域名,服务器端以OK作为响应,表示准备接收。(HELO命令现在比较少用,一般都使用EHLO命令,邮件服务器收到EHLO命令以后,不仅会返回250状态码,还会返回自己支持的各种扩展的列表。)
(3)客户端发送AUTH LOGIN请求认证,输入base64编码了的用户名和密码
(4)客户端发送MAIL和RCPT命令,以标识该电子邮件的计划接收人和发送者,可以有多个RCPT行;服务器端则表示是否愿意为收件人接收邮件。
(5)协商结束,发送邮件,用命令DATA发送。
(6)以“.”号表示结束输入内容一起发送出去,结束此次发送,用QUIT命令退出。

使用telnet连接演示

C: telent SMTP.163.com 25  //以telenet方式连接163邮件服务器  
S: 220 163.com Anti-spam GT for Coremail System //220为响应数字,其后的为欢迎信息  
C: HELO SMTP.163.com //跟服务器打招呼
S: 250-mail  
S: 250-AUTH LOGIN PLAIN  
S: 250-AUTH=LOGIN PLAIN  
S: 250 8BITMIME //最后一个响应数字应答码之后跟的是一个空格,而不是'-'   
C: AUTH LOGIN   //请求认证  
S: 334 dxNlcm5hbWU6  //服务器的响应——经过base64编码了的“Username”=  
C: Y29zdGFAYW1heGl0Lm5ldA==  //发送经过BASE64编码了的用户名  
S: 334 UGFzc3dvcmQ6  //经过BASE64编码了的"Password:"=  
C: MTk4MjIxNA==  //客户端发送的经过BASE64编码了的密码  
S: 235 auth successfully  //认证成功   
C: MAIL FROM: [email protected]  //发送者邮箱  
S: 250 … .  //“…”代表省略了一些可读信息  
C: RCPT TO: [email protected] //接收者邮箱  
S: 250 … .    // “…”代表省略了一些可读信息  
C: DATA //请求发送数据  
S: 354 Enter mail, end with "." on a line by itself  
C: Enjoy Protocol Studing  
C: .  
S: 250 Message sent  
C: QUIT //退出连接   
S: 221 Bye

常用命令

HELO  。向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到,后用来填写返回域名(具体含义请参阅RFC821),但该命令并不检查后面的参数,用户可以随意填写

MAIL FROM:  为发送者地址,此命令用来初始化邮件传输,即用来对所有的状态和缓冲区进行初始化。

RCPT TO: 。 用来标志邮件接收者的地址,常用在MAIL FROM后,可以有多个RCPT TO。

DATA 。将之后的数据作为数据发送,以.标志数据的结尾。

REST 。重置会话,当前传输被取消。

NOOP 。要求服务器返回OK应答,一般用作测试。

QUIT 。结束会话。

你可能感兴趣的:(MATP协议)