电子邮箱本质是要在用户间建立“端到端”的通信,可实现这一点却并不容易。
为啥这么说呢?
因为用户的IP通常是变化的。
一、变化的用户IP
不同于服务器IP的稳定不变,用户的IP通常是动态变化的。一个用户今天是这个IP,明天就可能是那个IP,在公司是一个IP,在家里又是一个IP。

这时建立两个用户间的端到端通信就像是实施空间站的对接一样,是“动态对动态”的对接,所以实现起来并不容易。
二、用户与服务器绑定
电子邮箱的解决办法则是,既然用户的IP是不稳定的,那就将他和IP稳定的服务器绑定起来。

所以,很多用户的所谓“注册邮箱”的行为,其本质其实就是在将自己和一台服务器进行绑定。
只不过这台服务器是大家共享的,任何人都可以和它绑定关系,在上面“注册邮箱”。
而愿意提供这种“邮箱服务器”代理的实体显然不止一家,这就产生了163邮箱、qq邮箱这些不同的邮箱服务。

此时的邮件通信本质其实就是相同或不同的“邮箱服务器”之间的通信。
三、SMTP协议
而这些邮箱服务器之间通信所使用的协议则是SMTP,其端口是25,是电子邮箱的核心通信协议。
SMTP是Simple Mail Transfer Protocol的缩写,直译即“简单邮件传输协议”。

可是邮件终究要由用户在客户端来写,收件后也要由用户在客户端来看。
所以,在邮箱服务器间的通信开始之前,还是要先进行客户端与服务器间的通信。
四、邮件读取协议
发件人在客户端写好邮件后也可以使用SMTP协议先发往其“邮箱服务器”,然后其邮箱服务器则会继续基于SMTP协议将邮件发往收件人的邮箱服务器。
这里的问题是,收件人如何收取邮件?

因为SMTP只是将发件人的邮件从其客户端送达收件人的邮箱服务器而已,并不是一直送到收件人的客户端。
为啥不能基于SMTP协议把邮件一直送到收件人的客户端呢?
因为SMTP协议本质是个“推送”协议,它能将数据直接从源主机推送到目的主机,但前提是你得先知道目的主机的IP地址。
可正如文章开头所提到的,普通用户的IP是动态变化的,所以收件人的邮箱服务器其实是无法确认其客户端所在主机的当前IP的。
这就意味着要实现电子邮箱服务仅仅是SMTP这种“推送”协议是不够的。
电子邮箱服务还需要一个专门的“拉取”协议来实现用户客户端对其邮箱服务器的邮件读取功能。
五、POP3、IMAP和HTTP
比较流行的邮件读取协议主要有3个,分别是POP3、IMAP和HTTP,客户端只需三选一即可。

POP3即“Post Office Protocol-Version 3”的缩写,直译即“第三版的邮局协议”,端口是110。
IMAP是“Internet Mail Access Protocol”的缩写,直译即“互联网邮件访问协议”,端口是143。
HTTP则是“Hypertext Transfer Protocol”的缩写,直译即“超文本传输协议”,也就是大家耳熟能详的web通信协议,端口80。
粗糙的看,POP3是一个“青春版”或者说“丐版”的读取协议,它只能把邮件下载到客户端再处理。
IMAP则是一个更加复杂的“高配版”的邮件读取协议,它允许用户直接在邮箱服务器对邮件进行管理。
六、HTTP协议的优势
HTTP作为邮件读取协议的好处就是无需用户下载专门的客户端,可以直接将浏览器作为客户端,用户体验更好。
而且一旦选择了HTTP作为邮件读取协议,那么客户端向服务器的邮件发送任务其实也会一起由HTTP代劳,而无需再使用SMTP

这就意味着,如果使用HTTP协议将会在一定程度上简化客户端与服务器间的通信(服务器与服务器间的通信仍然使用SMTP保持不变)。
评论前必须登录!
注册