浅析电子邮件的原理

在配置Outlook或者foxMail来收发邮件时,肯定会遇到SMTP协议和POP3协议的配置选项。那这两个协议分别是啥意思呢?网上都有翻译,我不会复制粘贴了。

首先,我会介绍一些常识,然后结合通俗的例子,再结合图文的方式来讲讲电子邮局其中的流程及工作原理。随后,我将会用windows 命令行的方式,登录邮件服务器,用命令行的方式手工发送/接受一封电子邮件。相信这样子,你将会透彻的理解其中的工作原理。

 

电子邮件的一些基本常识:

1.邮件服务器

2.电子邮箱

3.邮件客户端软件

4.邮件传输协议

5.电子邮件的传输过程

首先要明白这些“是懂非懂”的概念,才能更好的理解。

在Internet上要想提供电子邮件的功能,必须要有专门的电子邮件服务器。国内比较有名的就是“四大门户”的邮箱,国外的包括Gmail、Yahoo等。这些都是面向公众的,而且大部分免费提供的。大多数的企业,也都具有自己的企业邮件服务器,提供内部使用,或者日常工作中对外使用。

电子邮件服务器的主要功能:

1)接受用户投递过来的邮件  

2)将用户投递过来的邮件转发给目标邮件服务器  

3)接受其他邮件服务器转发过来的点邮件,并存入到为其管理者所分配的空间中  

4)为前来查收/读取邮件的用户提供服务(当然还包含删除。移动等等操作)

 

如图所示:

1电子邮件服务采用的架构 电子邮件服务原理_邮件服务器

1.用户Dylan写好一封邮件,交给了Sina的邮件服务器。完成第一步操作,这使用的就是SMTP协议。用户提交,服务器接受,使用的都是SMTP协议。

2.Sina的邮件服务器收到Dylan的邮件后,根据地址信息,又转发给了QQ的邮件服务器,这两台邮件服务器的收发,使用的都是SMTP协议。

3.有人用QQ邮箱,发送了一封Email给Dylan。所以,QQ的邮件服务器,将邮件发送给Sina的邮件服务器。这两台服务器的收发,使用的都是SMTP协议。

4.第四部比较特殊。是用户Dylan先主动请求Sina的邮件服务器,要求取自己的邮件。服务器知道后,再将该用户Dylan所管理的存储空间中的邮件,返回出去给Dylan。请一定记住,是用户先请求,而不是服务器先响应。这个过程中使用的POP3协议。

网上有些人解释,说SMTP协议就是负责发邮件,POP3协议就是负责收邮件。其实这是不太正确的。多台邮件服务器之间通信,收/发其实都是使用的SMTP协议。

而用户必须主动请求邮件服务器,才能获取到属于用户自己的邮件信息。这个过程中,才使用的是POP3。

其实可以把Internet上的“电子邮件服务器”,当作是一种“电子邮局”,或者直接理解为现实生活中的邮局。

1)用户递交包裹给深圳的邮局,深圳的邮局接受到包裹,再把包裹转发给了武汉的邮局。这其实易经完成了一次邮寄过程,使用的都是SMTP协议。

2)而邮局通常不会主动送货给用户的,也不主动通知你(除了最近几年流行的EMS外)。所以,用户只能主动跑到邮局去,询问邮局的工作人员。

    如果邮局的人发现有属于该用户的包裹,会将包裹交给该用户。这个过程就使用的是POP3协议。

请牢记,邮局不会像快递那样主动送货的,必须是用户主动去邮局询问并取包裹。所谓协议,其实可以理解为一种规范,一种特定的“通话语言”。

 

前面说了这么通俗的例子,相信你已经了解了大致的流程,更重要的是,明白了SMTP/POP3这两种协议。(当然,还有其他的协议,这里不做过多介绍)

友情提示:本文不打算讲解如何配置一台邮件服务器,因为这是网络管理员/系统管理员应该掌握的内容。市面上的邮件服务器软件繁多,在不同的服务器系统上也有多种实现。微软的Exchange Server , Apache James 这些都是比较流行的

电子邮件的传输过程,详细信息如图:

1电子邮件服务采用的架构 电子邮件服务原理_服务器_02

图上已经标明得很清楚了,相信经过前面的介绍。大家都能够理解整个交互过程了。

 

下面,我讲用windows命令行的方式,来演示发送和接收/查看电子邮件

首先,登录我的sina邮箱,准备发送一封邮件到我的QQ邮箱里面去。

运行“cmd”,打开Commond控制台。(提醒大家一下,这不是DOS。我经常发现某些人把其称为DOS,觉得很可笑。还有些培训讲师说这是DOS,误人子弟)

使用telnet命令,输入 telnet smtp.sina.com 25   回车

注释:sina提供的SMTP服务器地址是 smtp.sina.com ,使用的端口号是SMTP协议默认端口号 25 (Gmail好像用的是465和587)

提示:部分用户使用的windows 7的操作系统,可能会提示telnet命令不可用。请在控制面板,”打开/关闭功能“中安装telnet客户端,具体不解释。如果有些朋友还没有用过telnet,那我也只能先吐血了。天朝程序员水平参差不齐,作为一个windows平台上的开发人员,大部分的连个基本的Dos命令都不会。

有图有真相,我在每行命令和输入里,都加了详细的注释:

1电子邮件服务采用的架构 电子邮件服务原理_1电子邮件服务采用的架构_03

 

发送完成后,开始准备接受并查看邮件了

同理,telnet 到POP3服务器去

telnet pop.qq.com 110      腾讯的POP3服务器地址是pop.qq.com   使用的端口号也是默认的 110 (报警啊!)

有图有真相:

1电子邮件服务采用的架构 电子邮件服务原理_邮件服务器_04