您的位置: 网站首页 > 千军万马 > Linux操作系统 > 第8章 电子邮件服务器配置 > 【8.1 邮件系统的组成部件】

8.1 邮件系统的组成部件

 

在互联网上的普通的计算机用户可以通过网页客户端或是软件客户端进行电子邮件的收发,完成这项功能的就是电子邮件服务器。在互联网上存在着大量的电子邮件服务器,它们协同工作才能保证在互联网上的电子邮件可以发送到指定的任意位置。本章主要讲述在Fedora 6环境下如何配置Mail服务器,以实现电子邮件的发送。

本章主要内容

&        电子邮件服务器的组成

&        Sendmail邮件服务器的安装

&        Sendmail邮件服务器的具体配置

8.1  邮件系统的组成部件

Fedora中的电子邮件系统包括三个组件:MUAMail User Agent,邮件用户代理)、MTAMail Transport Agent,邮件传送代理)和MDAMail Delivery Agent,邮件投递代理)。MUA是邮件系统为用户提供的可以读写邮件的界面;MTA运行在底层,负责把邮件由一个服务器传到另一个服务器或邮件投递代理;而MDA则负责把邮件放到用户的邮箱里。简单地说,用户可以使用MUA写信、读信,通过MTA传送信件,然后再由MDA将信件分发到户,整个流程如图8-1所示。

8-1  邮件传输流程

8.1.1  常用的MTA程序

最通用的电子邮件MTA系统是Sendmail,它最初被集成在加州大学开发的电子邮件系统中。Fedora系统中有几个版本的Sendmail,这些版本中的差别不是很大。

由于程序在Fedora发布光盘中都可以找到,对小型的应用来说,任意Sendmail是很好的选择。Sendmail非常灵活,可以获得很好的性能。它的基本功能,除了最基本的信件递送,还有信件转递处理、积存(待送)信件处理、不同传输工具判断及退信处理等。

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

8.1.2  MUAMTA协同运行

当使用一个MUA程序写信(例如elmpinemail)时,应用程序把信件传给SendmailsmailMTA程序。尽管大多数的系统只使用一个MTA程序,然而实际上可以同时运行几个程序,比如运行一个MTA程序处理局域网信件,而运行另一个MTA程序来处理UUCP信件。

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

8.1.3  MDA邮件分发

邮件分发代理MDA用于将邮件保存到用户的邮箱中,是直接和用户邮箱打交道的部分之一。

在邮件分发中,有时需要系统能完成一些自动操作。例如,当用户不能及时回复时,在Fedora 6上的vacation程序就可自动帮助用户回复邮件,把自己的情况告诉发送方。

现在,还有一些更为复杂的MDA实现一定的智能化操作,例如procmailmaildrop等。它们可以根据邮件信封上的地址和信件中的具体内容,实现对邮件的自动处理,如拒收、自动回复、自动转发等。

但是,这些复杂的MDA都存在一个问题,就是配置比较复杂,至少需要一定的编程基础才能完成对它们的配置,而不适合普通用户,因此就需要开发功能更简单一些的MDA,使配置更为直接、易于理解。另一种解决方案是,针对procmail或者maildrop这些复杂的MDA,编写易于理解的管理界面,通过增加一些限制或减少一些功能,适应普通用户的应用。