yehao's Blog

电子邮件工作原理

转自http://blog.csdn.net/zyh5540/article/details/18953853

一、三种协议

1. SMTPSimple Mail Transfer Protocol

  SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议。SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。SMTP主要负责底层的邮件系统如何将邮件从一台机器传至另外一台机器。

2. POPPost Office Protocol

  目前的版本为POP3,POP3是把邮件从电子邮箱中传输到本地计算机的协议。  

3. IMAPInternet Message Access Protocol

  目前的版本为IMAP4,是POP3的一种替代协议,提供了邮件检索和邮件处理的新功能,这样用户可以完全不必下载邮件正文就可以看到邮件的标题摘要,从邮件客户端软件就可以对服务器上的邮件和文件夹目录等进行操作。IMAP协议增强了电子邮件的灵活性,同时也减少了垃圾邮件对本地系统的直接危害,同时相对节省了用户察看电子邮件的时间。除此之外,IMAP协议可以记忆用户在脱机状态下对邮件的操作(例如移动邮件,删除邮件等)在下一次打开网络连接的时候会自动执行。  

 二、工作原理

    下面以sinasohu这两个电子邮局为例来讲解电子邮件的传输过程和工作原理。假设sina邮箱的账户为lisi@sina.comsohu邮箱的账户为wangwu@sohu.com,它们之间的邮件收发过程如下图所示:

    

图中实线部分表示lisi@sina.com账户向wangwu@sohu.com账户发送邮件的过程,虚线部分表示wangwu@sohu.com账户向lisi@sina.com账户发送邮件的过程。下面通过分析lisi@sina.com账户向wangwu@sohu.com账户发送邮件的过程,来具体讲解一封邮件从发送到接收所涉及的环节。 

   

lisi@sina.com的邮件客户端程序(这里假设为Outlook Express)与sinaSMTP服务器建立网络连接,并以lisi的用户名和密码进行登录后,使用SMTP协议把邮件发送给sinaSMTP服务器。

 

  sinaSMTP服务器收到lisi@sina.com提交的电子邮件后,首先根据收件人的地址后缀判断接收者的邮件地址是否属于该SMTP服务器的管辖范围,如果是的话就直接把邮件存储到收件人的邮箱中,否则,sinaSMTP服务器向DNS服务器查询收件人的邮件地址后缀(sohu.com)所表示的域名的MX记录,从而得到sohuSMTP服务器信息,然后与sohuSMTP服务器建立连接并采用SMTP协议把邮件发送给sohuSMTP服务器。

    

sohuSMTP服务器收到sinaSMTP服务器发来的电子邮件后,也将根据收件人的地址判断该邮件是否属于该SMTP服务器的管辖范围,如果是的话就直接把邮件存储到收件人的邮箱中,否则(一般不会出现这种情况),sohuSMTP服务器可能继续转发这封电子邮件,也可能丢弃这封电子邮件。

 

  拥有wangwu@sohu.com账户的用户通过邮件客户端程序(这里假设也为Outlook Express)与sohuPOP3/IMAP服务器建立网络连接,并以wangwu的用户名和密码进行登录后,就可以通过POP3IMAP协议查看wangwu@sohu.com邮箱中是否有新邮件,如果有的话,则使用POP3IMAP协议读取邮箱中的邮件。

 

  图中的虚线部分表示wangwu@sohu.com账户向lisi@sina. com账户发送邮件的过程,此过程与lisi@sina.com账户向wangwu@ sohu.com账户发送邮件的过程类似,这里不再复述。

 

   邮件客户端软件与SMTP服务器之间,以及两台SMTP服务器之间都采用SMTP协议进行通信。邮件客户端软件只采用SMTP协议发送邮件,即邮件客户端软件只作为SMTP协议的发送方。SMTP服务器既要采用SMTP协议向其他SMTP服务器发送邮件,又要采用SMTP协议接收其他SMTP服务器或邮件客户端软件发送来的邮件,即SMTP服务器既作为SMTP协议的发送方,又作为SMTP协议的接收方。邮件客户端软件与SMTP服务器都可以使用SMTP协议发送邮件,仅发送邮件这一功能而言,它们在技术实现上有何差异呢?它们的差异主要体现在以下两个方面:

    

   (1SMTP服务器接收到邮件客户端软件发送来的邮件后,需要根据收件人地址的域名将邮件转发给目标域的SMTP服务器,而大量的收件人地址中肯定会出现各种可能的域名,因此,SMTP服务器涉及到要与其他多台不能事先确定的SMTP服务器进行通信,它需要具有根据收件人地址的域名查询出该域的SMTP服务器的功能,即需要具有查询域名的MX记录的功能。邮件客户端软件被设置为与固定的SMTP服务器通信,它可以直接与指定的SMTP服务器建立网络连接,因此它不需要具有根据收件人地址的域名来查询该域的SMTP服务器的功能。

    

   (2)对于来自某个邮件客户端软件的邮件传输请求,SMTP服务器可能需要对发件人的用户账号信息进行验证,因此,邮件客户端软件需要具有向SMTP服务器传送用户账号信息的功能。SMTP服务器能够直接接受来自其他SMTP服务器的邮件传输请求,因此,SMTP服务器在发送邮件时根本不需要传送用户账号信息的功能。 

三、什么是MX记录

   在DNS服务器上除了可以建立主机名与IP地址的映射外,还可以建立其他多种映射,例如,建立某个主机名与其别名的映射;建立某个域名与其SMTP服务器的映射。在DNS服务器上创建的各项映射关系称为记录,一项映射关系就是一条记录,在DNS服务器上创建的主机名与IP地址的映射关系称为A记录,主机名与别名的映射关系称为CNAME记录,域名与其SMTP服务器的映射关系称为MX记录。

   在DNS服务器上为什么要建立MX记录呢?即为什么要建立域名与其SMTP服务器的映射关系呢?这与电子邮件地址的表示形式和工作原理有关。邮件地址后缀部分表示的通常都是一个域名,而不是接收邮件的服务器的主机名,例如,邮件地址“zxx@it315.org”中的“it315.org”对应的就是一个域名。域只是一个逻辑组合概念,它并不代表真正的计算机,对于使用某个域名作为后缀的邮件地址,外界发送给它的电子邮件必须由一台专门的SMTP服务器来进行接收和处理,接收和处理某个域的电子邮件的SMTP服务器即为该域的SMTP服务器,外界发送给某个域的电子邮件实际上都是发送给该域的SMTP服务器。外界如何知道一个域的SMTP服务器的地址呢?这就是通过管理该域的DNS服务器上的MX记录来获得的,这也就是在DNS服务器上为什么要建立域名与其SMTP服务器的映射关系的原因。

   当某台SMTP服务器要给“zxx@it315.org”发送一封电子邮件时,该SMTP服务器将根据邮件地址的后缀部分而去查询“it315.org”这个域的MX记录,得到这个域的SMTP服务器的主机名为“mail.it315.org”,然后将邮件发送给“mail.it315.org”这个SMTP服务器。

posted on 2015-02-27 16:12 厚积薄发 阅读(303) 评论(0)  编辑 收藏 引用 所属分类: 计算机基础


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

常用链接

留言簿

随笔分类

文章分类

文章档案

搜索

最新评论