Linux作邮件服务器操作(9)

sendmail的主要角色是充当一个邮件路由器。即通过它获取信件、检查收件人地址并确定发送信件的最好路径。sendmail是如何来执行这一任务呢? 

sendmail可以确定它自己的一些信息,例如当前的时间和它运行所在的主机名,但它的大部分智能是由用户(“邮件管理员”)通过配置文件sendmail.cf的形式来提供的。这个配置文件确切地告诉sendmail如何来处理各类邮件,它非常灵活和强大,并且乍看起来似乎难于理解。 
但是,正像上面介绍的那样,V8 sendmail具有一套模块化的配置文件构造块,大多数站点都能够利用这些模块轻易地构造出配置文件,并且还包括许多示例。 

像前面提到的那样,sendmail可以作为一个MTA运行,因为它理解SMTP协议(V8 sendmail还理解ESMTP)。由于SMTP是一个面向连接的协议,因此客户程序和服务程序(也称为发送器和接收器)总是存在。SMTP客户程序可以向SMTP服务程序投递信件,SMTP服务程序将不断地监听计算机的SMTP端口。sendmail可以是一个SMTP客户程序,也可以是一个SMTP服务程序。当sendmail被MUA运行时,它成为一个SMTP客户程序,并把客户端SMTP通知给SMTP服务程序(不必是另一个sendmail程序);当系统引导并且sendmail以守护进程模式启动时,它不停地运行,为新发来的邮件监听着SMTP端口,这时sendmail就是一个服务程序了。 
sendmail所不做的一件事情是邮件的最终投递。sendmail把这一任务留给了其他程序。sendmail是一个大型的、复杂的、利用超级用户权限运行的程序,因此需要有一些方法来解决安全性的问题,有关安全性的问题在sendmail的过去已经发生过许多次。邮件投递的额外复杂性是sendmail有待解决的最后一个问题。

4  配置Elm和Pine

配置好sendmall邮件系统后,就可以发送和接受邮件了。但是仅仅能够收发邮件还不够,还需要显示邮件、管理邮箱的程序,因此还必须配置MUA程序。在Linux/UNIX中有很多这样的MUA程序,其中影响最大、应用最广的是Elm和Pine。在Linux的各个版本都包含了这两个邮件程序。下面介绍如何对它们进行正确的配置。

4.1  配置 Elm 

Elm代表Electronic Mail,它的功能非常强大并且提供很好的帮助系统。在多数情况下,只要sendmail邮件系统能够正常运行,就可以运行Elm程序。 
Elm的配置文件是/usr/lib/elm/elm,对于一般用户来说,仅需修改此文件中与机器名和域名有关的选项。代码清单8.l给出的elm.rc文件经过了删节,仅保留了一般用户要作修改的部分。
代码清单 8.1  elm.rc配置文件 
        # Local hostname 
        hostname=mymailer 
        # 
        #  Domain name_ 
        hostdomain=.sw.edu.cn 
        # 
        # Fully qualitifed domain name 
        hostfullname=mymailer.sw.edu.cn 
        #  
    
从上面的例子可以看出,配置语句的格式是:“变量=值”,看起来比较直观。值得注意的是,城名前面必须加上一个圆点,否则会导致机器名出错。 

缺省情况下,Elm程序使用ASCⅡ字符集,当它遇到不能识别的字符时,就调用系统进程metamail来显示代码。当进程metamail运行时,将减慢邮件程序Elm的运行速度。为了使Elm程序可以处理Linux系统使用的标准字符集,要在文件/usr/lib/elm/elm.rc中加人下面的语句:  displaycharset=iso-8859-l 
    另外,因为Elm程序不能正确处理ISO-8859-l字符集中的有些特殊字符,所以要在文件elm.rc中加入下面两行: 
        charset=iso-8859-l 
        textencoding=8bit 
缺省情况下,系统将一个字节中最后一位去掉以产生7位的字符。第二行命令把系统设置成可以处理8位字符。 
Elm程序的配置信息被保存在文件/usr/lib/elm/elm.rc中和用户主目录的.elm/elm.rc文件中。这两个文件是Elm程序运行时自动产生的,用户不必直接去编辑这两个文件。 
    8.4.2  配置Pine 
    Pine也是一个常用的邮件程序。和Elm一样,Pine程序也通过一个配置文件来控制邮件程序的访问和操作。Pine程序的配置可以引用系统变量的值,也可以由用户定义。 
    Pine程序可以通过修改文件.pinerc来配置。这个配置文件比较庞大。但一般用户仅需关心该文件的三部分:(l)系统名和用户标志的配置;(2)邮箱的配置;(3)Pine程序属性的配置。 
下面的代码清单8.2节选了配置文件关于系统名和用户标志的配置部分。其中设置为空的项表示使用系统的缺省值。如果需要用户定制,可以在等号右边填写。配置的第一项是 
        personal-name= 
一般用登录名(账号名)即可,当然也可以填写其他名字。其他配置如smtp-server、nntp-server、user-domain、inbox-path都可以用系统缺省值。在配置之前,认真地阅读开头的注释部分是很有必要的。

代码清单8.2 .pinerc中系统名和用户标志的配置部分
    # Updated by Pine(tm) 4.10,copyright 1989-1999 University of Washington.
    #
    # Pine configuration file-custornize as needed.
    #
    # This file sets the configuration iptions used by Pine and PC-Pine.If you
    # are using Pine on a Unix systern,there may be a systern-wide configuration