现在,如果你拿着一叠写好的信件走在办公室或者其他地方,所引来的关注程度一定不亚于PLMM——不过是因为你的落伍。随着网络的普及,传统信件已经逐步被电子邮件所取代,成为我们生活中不可或缺的一个环节。或许你已经忘记了邮局的位置,但是绝对不会忘记自己的Email地址。那么,当你坐在电脑前面,轻轻敲击键盘、点击鼠标来实现和外界邮件往来的时候,你知道自己调用了哪些协议,它们又是如何兢兢业业的为你默默服务的吗?假设有一个地址为abc@126.com、密码为123的网易邮箱,我们来看一下在邮件客户端软件中,它是如何工作的。
一、POP3协议
以前,当我们还在使用普通邮件的时候,我们常常会用一把带锁的箱子作为我们自己的信箱,邮递员会根据邮寄地址把我们的信件放入邮箱中。同样,电子邮件也有它们的暂时存放地,这便是POP服务器。我们使用账号和口令打开POP服务器,就好比是我们在日常生活中拿钥匙打开自己平日的信箱锁一样,开锁的过程便是验证的过程。
POP的全称是Post Office Protocol,即邮局协议,用于电子邮件的接收,它使用TCP协议的110端口。现在常用的是第三版,也就是POP3。我们的abc@126.com邮箱的POP3服务器地址就是pop3.126.com。POP3采用Client/Server工作模式,Client被称为客户端,一般我们日常使用电脑都是作为客户端工作的,而Server(服务器)则是由网管人员进行管理的。打个比方,我们的居民区将各个住户的信箱都集中在某个地方,由物业公司的人负责管理,当用户要取信的时候只要带上自己的钥匙去这个地方找到自己的信箱开锁取信就可以了。
那么,我们使用客户端软件来远程收取邮件时,其具体过程又是怎样的呢?首先,我们会在邮件客户端软件比方说Outlook、Foxmail的账号属性上设置一个POP服务器的地址(pop3.126.com),以及自己所注册邮箱的账号(abc)和密码(123)。当我们在软件中执行收取邮件的命令后,软件首先会调用DNS协议对POP服务器进行IP地址的解析工作,也就是获知服务器在互联网上的真实位置。当IP地址被解析出来后,邮件程序便开始使用TCP协议连接邮件服务器的110端口。
当邮件程序成功地连上POP服务器后,会先使用USER命令将邮箱的账号传给POP服务器,然后再使用PASS命令将邮箱的密码传给服务器。如果账号和密码通过了服务器的认证,邮件程序就可以使用STAT命令请求服务器返回邮箱的统计资料,比方说邮箱中邮件的总数、大小等,得到许可后便用LIST命令列出服务器里邮件数量。接下来邮件程序就会使用RETR命令接收邮件,接收一封后便使用DELE命令将邮件服务器中的邮件置为删除状态。最后,当邮件接收完毕后,通过QUIT命令退出,邮件服务器便会将置为删除标志的邮件删除掉。因此,邮件程序从服务器接收邮件,其实就是一个对话过程,POP协议就是用于电子邮件的一门语言。当然了,这门语言我们不需要掌握,因为客户端程序会替我们来完成这一切。
小提示:如果你想在服务器上保留邮件备份,则需要在邮件客户端软件中进行相应的设置。这样,使用DELE命令标记邮件删除状态的步骤便会被跳过,服务器上的邮件便会得以保存下来。
二、SMTP协议
和POP相对,SMTP是一个用于邮件发送的协议,它是Simple Mail Transfer Protocal的简称,中文译名为简单邮件传输协议,目标是向用户提供高效、可靠的邮件传输服务,其通常使用的是25端口。不过,这种传输的范围非常广,除了邮件客户端软件常用的客户端到服务器之间的邮件传输外,SMTP还作为从某一个服务器传输到另一个服务器的邮件传输协议(见图1)。因此我们可以说,SMTP是事实上的在Internet传输Email的标准,远比我们所认为的“用客户端发送邮件”的看法要广阔得多。

我们还是以大家所熟悉的邮局传递邮件为例来说明SMTP协议的工作过程。首先,要在客户端软件中设置好SMTP服务器(smtp.126.com)。此外,还要设置注册邮箱的账号和密码(通常可以选择与POP设置相同),虽然发送邮件不需要打开信箱的钥匙,但是服务器也不可能给不属于自己的用户来当“雷锋”,这就好比我们要在普通信封上贴上邮票,邮局才会受理一样。邮件编辑完成后在软件中执行发送操作,软件便会首先对SMTP服务器的地址进行解析,当找到其真实IP地址后,便会向该服务器发送连接请求。这就好比写好信件后要先找到邮电局,然后要求邮电局发送你的邮包。
|