建立邮件服务器:概述(1)

摘要:1、Linux邮件软件   1.1 邮件系统的组成部件   Linux中的电子邮件系统包括两个组件:MUA(Mail User Agent,邮件用户代理)和MTA(Mail Transport Agent,邮件传送代理)。MUA是邮件系统为用户提供的可以读写邮件的界面;而MTA试运行在底层,能够处理邮件的收发工作的程序。简单的说,用户可以使用MUA写信、读信、而通过MTA收信、发信。   1.2 常用的MTA程序   最通用的电....

  1、Linux邮件软件

  1.1 邮件系统的组成部件

  Linux中的电子邮件系统包括两个组件:MUA(Mail User Agent,邮件用户代理)和MTA(Mail Transport Agent,邮件传送代理)。MUA是邮件系统为用户提供的可以读写邮件的界面;而MTA试运行在底层,能够处理邮件的收发工作的程序。简单的说,用户可以使用MUA写信、读信、而通过MTA收信、发信。

  1.2 常用的MTA程序

  最通用的电子邮件MTA系统是sendmail,他最初被集成在加州大学开发的电子邮件系统中。Linux系统中有几个版本的sendmail,这些版本中的差别不是很大。另一个常见的MTA程序是smail,他是有Curt Noll和Ronald Kart共同开发的。

  由于这两种程序在Linux发布光盘中都可以找到,对小型的应用来说,任意一种都是很好的选择。由于smail是比较现代的产品,它在配置和使用上稍微方便一些。对大型系统或有特殊配置要求的应用来说,sendmail更灵活一些,可以获得更好的性能。它们的基本功能除了最基本的信件递送, 还有信件转递处理、 积存 (待送) 信件处理、 不同传输工具判断及退信处理等等。

  当我们需要使用sendmail或者smail时,就需要通过配置文件来定制程序包,以便完成我们需要的各种操作。sendmail的配置非常复杂,它有一个复杂的配置文件,这个文件复杂到用手工很难进行配置的程度。所以在进行配置时通常需要运行另外一个应用程序来达到简化的目的。相比较而言,smail的配置则非常简单。

  1.3 MUA与MTA协同运行

  当使用一个MUA程序写信(例如elm,pine或mail)时,应用程序把信件传给sendmail或smail这样的MTA程序(实际上,MUA程序将信件传给一个叫做rmail的普通服务器,它通常是系统中的MTA程序的别名)。尽管大多数的系统只使用一个MTA程序,然而实际上可以同时运行几个这样的程序,比如运行一个MTA程序处理局域网信件,而运行另一个MTA程序来处理UUCP信件。

  如果信件是寄给局域网或本地主机的,那么MTA程序应该从地址上就可以确定这个信息。MTA程序还支持别名机制,使得用户能够方便的用不同的名字与其他用户、主机或网络通信。如果信件是发给远程系统用户的,那么MTA程序必须能够选择路由,与远程邮件服务器建立连接并发送邮件。这种远程连接可以建立在UUCP或TCP之上。如果是后者,那么就要采用SMTP协议(Simple Mail Transfer Protocol,简单邮件传输协议)。MTA程序还必须能够处理发送邮件时产生的问题,并且能向发信人报告出错信息,例如,当邮件没有填写地址或收信人不存在时,MTA程序要向发信人报错

  1.4 不同地址的识别

  邮件系统要能够识别各种不同格式的地址(收信人和发信人的)。最常见的格式是UUCP格式和域名格式。UUCP格式的地址(带感叹号)清楚的列出了从收信人到发信人的路径,例如地址"bill!bird!keyanbu.com!paul"说明这封新药经过bill,经过bird,然后经过keyanbu.com,最后到达收信人paul手中。而域名格式(例如zzy@keyanbu.com)则通过专门的地址解析系统找出从收信人到发信人的路径。尽管这两种格式是最常见的,但是其他地址系统也是存在的。

  1.5 邮件系统的路由选择

  选择路由是MTA程序提供给用户的一个重要功能,并且这项功能随着地址格式的变化而变化,因为UUCP格式的地址已经确定了路由,而域名格式的地址需要选择路由。对于基于TCP协议的连接来说,MTA程序根据IP地址将邮件传给目的主机,让IP协议来选择路由。

  为了简化邮件传送过程,可以在局域网中采取发布MX(Mail eXchange)路的方法。这种MX纪录有DNS解释说明。它可以指导邮件选择路由。这种情况是用于大规模网络或只有一个接口连接到Internet的网络。这种MX纪录可以是一个并不总是连到Internet的主机能够收到被邮件服务器接收到的邮件。下面就是一条MX纪录:

  abc.zgjsyh.com IN MX 3 mallserver.zgjsyh.com

  这一项告诉DNS系统任何发给abc.zgjsyh.com的邮件都要传给系统mailserver.zgjsyh.com。纪录中的"IN"是资源纪录类型,"MX"表明这条纪录是MX纪录。例子中的数字"3"是优先序列号,它用来确定服务器的优先级。一个网络中可以有几台邮件服务器,每个服务器都由一个优先序列号。传送邮件的软件先选择向序列号较小的服务器传,如果小序列号服务器没有相应,在向序列号大一点的服务器传。

  UUCP网络处理邮件的方法与TCP网络的完全不同。在UUCP网络发展的早期,由于从源地址到目的地址的每一跳(hop)都必须确定下来,所以整个路径都很清楚明了。随着网络规模的扩大,确定地址几乎是不可能的、因此映射系统应运而生。UUCP映射系统维护着一个表格,表中包括了所有正式UUCP站点名字和与它们相邻的站点。映射系统接收基于UUCP的MTA程序传来的请求,为MTA程序搜索到达目的地的路径。这些映射被称为USENET映射,他们定期向Internet发布UUCP站点的信息。