邮件协议SMTP
SMTP是简单mail传输协议,目标是向用户提供高效可靠的邮件传输。
他特别的地方在于服务器可以接力传送邮件,有两种工作情况:一是电子邮件从客户机传输到服务器,二是从某一个服务器传输到另一个服务器。
SMTP发送邮件之前需要将二进制多媒体编码为ASCII码,并且在使用SMTP传输后要求将相应的ASCII码邮件解码还原为多媒体数据,我们知道的是HTTP传输前不需要将多媒体数据编码为ASCII码。
邮件发送过程
1、发送方调用用户代理并提供接收方的邮箱地址,在用户代理上撰写待发送的报文,接着指示用户代理发送报文。
2、用户代理将撰写的报文发送到的邮件服务器,报文到达邮件服务器后将被分发到报文队列中。
3、运行在发送方的邮件服务器的SMTP客户端发现报文队列中的这个报文后将会创建一个到运行在接收方邮件服务器的SMTP服务器的TCP连接。
4、经过SMTP握手后,SMTP客户端通过TCP连接把报文发送出去。
5、在接收方的邮件服务器上,SMTP服务器接收到报文后,邮件服务器将报文放入接收方的邮箱里。
6、接收方有空时看到邮箱消息便调用用户代理查阅报文。
在此过程中,SMTP使用一些命令和应答对报文进行传输。
SMTP握手
- 从客户端使用熟知端口号25建立与服务器的TCP连接,SMTP服务器向该客户送回应答码220,并且还为客户端提供了服务器的域名
- 客户端收到应答码后,发送HELO命令,启动客户端和服务器之间的SMTP会话。该客户端发送的HELO用来向服务器提供客户端的标识信息
- 服务器端回应应答码250,通知客户端:请求建立邮件服务会话已经实现
C: telent SMTP.163.com 25 //以telenet方式连接163邮件服务器
S: 220 163.com Anti-spam GT for Coremail System //220为响应数字,其后的为欢迎信息
C: HELO