电子邮件有三个主要的组成部分:用户代理,邮件服务器和简单的邮件传输协议(SMTP),我们几天主要来说一下在应用层中的SMTP协议,它使用TCP可靠数据传输服务,像大多数应用层协议一样,SMTP也有俩个部分:运行在发送方邮件服务器的客户端和运行在接收方邮件服务器的服务器端,每台邮件服务器既运行SMTP服务器端也运行SMTP客户端。
SMTP发送邮件之前需要将二进制多媒体编码为ASCII码,并且在使用SMTP传输后要求将相应的ASCII码邮件解码还原为多媒体数据,我们知道的是HTTP传输前不需要将多媒体数据编码为ASCII码。
为了通俗的理解SMTP原理,我们来看下面这个案例:
STMP一般不使用中间邮件服务器发送邮件,即便这俩个服务器距离很远也是这样的。
对比http协议
http更像一个拉协议,服务商在Web上装载信息,用户使用HTTP从该服务器拉取这些信息,
SMTP更像一个推协议,发送邮件服务器把文件推向接收邮件服务器
SMTP要求每个报文采用7bitASCII字符或二进制数据,则该报文必须按照7bitASCII码进行编码,Http则不受这种限制
当遇到出来一个既包含文本又包含图形的文档,Http把每个对象都封装到它自己的http响应报文中,二SMTP则把所有的报文对象放在一个报文中