2014-07-26 22:16:32
来 源
中存储网
邮件服务器
sendmail配置命令是区分大小写的。根据习惯,预定义宏的名称全部是大写(例如OSTYPE),m4命令全部是小写(例如define),可配置的变量名用小写的conf打头,以全部大写的变量名结尾(例如confCOPY_ERRORS_TO)。宏通常指向一个叫做../macroname/arg1.m4的文件。例如,宏

sendmail基本配置原语

sendmail配置命令是区分大小写的。根据习惯,预定义宏的名称全部是大写(例如OSTYPE),m4命令全部是小写(例如define),可配置的变量名用小写的conf打头,以全部大写的变量名结尾(例如confCOPY_ERRORS_TO)。宏通常指向一个叫做../macroname/arg1.m4的文件。例如,宏OSTYPE(‘linux')使得../ostype/linux.m4被包括进来。

在本节中我们只涉及基本的配置命令,把高级命令留到后面讨论。

 

VERSIONID宏

您应该用CVS或者RCS维护配置文件,这不仅是为了能在必要时返回到早先的配置版本,也是为了能够标出构成配置文件的m4文件的版本。请使用VERSIONID宏来自动嵌入版本信息。句法是:

实际的版本信息将在您检入文件时由RCS填入。它将作为注释出现在最终的sendmail.cf文件中。如果您忘记把sendmail发布版本放在了哪个位置,这项信息对您会有帮助。文件的位置常常是由可用的磁盘空间而不是由文件系统的设计思路决定的。

 

OSTYPE宏

ostype目录下的文件用其包含的默认值所针对的操作系统来命名。一个OSTYPE文件封装了各种特定于厂商的信息,比如与邮件相关的文件的期望位置、sendmail所需命令的位置、邮寄程序的标志等。

根据约定,特定于操作系统的信息由OSTYPE宏插入配置文件 。每个配置文件在靠近开头的地方都必须包括一个OSTYPE宏,一般是紧跟在VERSIONID之后。
OSTYPE文件主要是通过定义其他m4变量来完成工作。例如:

define(‘ALIAS_FILE',  ‘/etc/aliases')

指定系统范围的别名文件的位置。如果愿意的话,您可以稍后在.mc文件中覆盖OS的默认值,但是请不要修改软件发布中自带的OSTYPE文件,除非它真的错了,此时还应该提交一份错误报告给sendmail-bugs@sendmail.org。有些网点想让别名文件跨平台保持一致的位置,于是在他们的DOMAIN文件中重新定义了它的位置。

cf目录中的README文件列出了在OSTYPE文件能够定义的所有变量。表18.8一方面举出了一些重要的变量,另外还有几个您可能想用来配置减少垃圾邮件的变量(但是默认没有定义)。默认值是您的OSTYPE文件没有指定其他值的时候您所得到的值。

表18.8 在OSTYPE文件中设置的一些变量的默认值

变    量

默  认  值

变    量

默  认  值

ALIAS_FILE

/etc/mail/aliases

LOCAL_SHELL_PATH

/bin/sh

HELP_FILE

/etc/mail/helpfile

LOCAL_MAILER_MAX

未定义

STATUS_FILE

/etc/mail/statistics

LOCAL_MAILER_MAXMSGS

未定义

QUEUE_DIR

/var/spool/mqueue

SMTP_MAILER_MAX

未定义

MSP_QUEUE_DIR

/var/spool/clientmqueue

SMTP_MAILER_MAXMSGS

未定义

LOCAL_MAILER_PATH

/bin/mail

 

 

如果在一个新的OS版本或体系结构上安装sendmail,一定要创建一个相应的OSTYPE文件并把它提供给sendmail.org,以便可以在sendmail的下一个版本中把它包括进来。只要以那些已存在的文件为模型建立新文件,然后对照cf/README文件中默认值的表检查它即可。如果新系统中某个变量的值与默认值相同,就不需要再为它包含一项(但是万一默认值有变化,这样做对保护您自己也没坏处)。

表18.9显示了我们举例的平台所用的OSTYPE文件。
表18.9 Linux系统的OSTYPE文件

系    统

文    件

目    录

用    法

Red Hat

linux.m4

/usr/share/sendmail-cf

OSTYPE(‘linux')

Fedora

linux.m4

/usr/share/sendmail-cf

OSTYPE(‘linux')

SUSE

suse-linux.m4

/usr/share/sendmail

OSTYPE(‘suse-linux')

Debian

debian.m4

/usr/share/sendmail/sendmail.cf

OSTYPE(‘debian')

Ubunutu

linux.m4

/usr/share/sendmail

OSTYPE(‘linux')

SUSE把sendmail的软件发布放在/usr/shsare/sendmail里。OSTYPE文件suse-linux.m4就在那里的ostype目录下,它不是sendmail.org发布的sendmail软件包的一部分。那个文件很长(超过80行),包含了各种FEATURE,以及其他一些宏,它们通常可以在一个站点的主控配置文件(.mc文件)而不是OSTYPE文件里找到。这种做法把真实的配置向系统管理员藏了起来―或许混起来有好处,但我们建议在实际中不要这样做。
Debian把配置文件藏在了/usr/share/sendmail/sendmail.cf/下。sendmail.cf目录(Debian的人选的这个名字太容易让人搞混了)对应于sendmail软件发布中的cf目录,它包含您需要的所有文件,包括一个针对于Debian的OSTYPE文件ostype/debian.m4。这个OSTYPE文件有50行长,大多由路径名和注释所组成,它也应该是那样。许多内容和sendmail.org的当前默认内容是一样,所以不需要再明确地说明一遍。不过,重新说明一遍有助于防止Debian出现因为默认值的变化而造成的不一致性或者错误。只有Debian和sendmail的OSTYPE部分中不一样的内容包括在sendmail软件发布所带的一般DOMAIN文件里。在实际的.mc文件中,DOMAIN语句应该在前面出现,而不是隐藏在OSTYPE文件里。

 

DOMAIN宏

DOMAIN指令允许在一个地方(cf/domain/filename.m4)指定全站的一般信息,然后在每台主机的单个配置文件中这样引用它:

通常选择一个能描述站点特色的文件名。例如,我们给计算机科学系用的文件名为cs.m4,在.mc文件中表示为:

和OSTYPE一样,DOMAIN其实只是一种包含的好方法。但它使得配置文件的结构更为清晰,并为将来的变化埋下了一个伏笔。它最大的用处是从保存在一个地方的.mc文件集中并构建网点的所有.cf文件。

小网点通常不需要DOMAIN文件,但是大些的网点常常用它们引用中转机器、站点级的伪装或保密选项,以及邮寄程序、虚拟域和垃圾邮件数据库的表。

软件发布所带的一般DOMAIN文件给出了通常放在全站范围DOMAIN文件中的那些类型的项。它的内容(删除了注释和dnl)如下所示:

  

这个文件设置了用户转发文件的路径,限制了信头的长度 ,包括进来用于已经离开单位的用户的重定向功能,以及打开了use_cw_file功能,以处理等价的主机名。如果您的.mc文件包括masquerading(伪装功能),那么root用户就不能被伪装。本章后面的内容将会详细介绍这些结构里的每一种。

 

MAILER宏

您想要启用的每个投递代理都必须包括一个MAILER宏。在sendmail软件发布的cf/mailers目录下,可以找到一个被支持的邮寄程序的完整列表。当前,可选用的邮寄程序有local、smtp、fax、usenet、procmail、qpage、cyrus、pop、phquery和uucp。一般说来,您至少需要:

MAILER(‘local')
MAILER(‘smtp')

第一行包括local和prog邮寄程序。第二行包括smtp、esmtp、dsmtp、smtp8和relay。从8.7版 的sendmail开始,local中加入了对user+details@site.domain这样的电子邮件地址的支持。user定义了消息应该投递到的邮箱,而details提供了一个额外的参数,像procmail这样的本地邮件程序就能用这个参数来对传入的邮件进行分类。

如果您打算调整任何与邮寄程序相关的宏(比如USENET_MAILER_ARGS或FAX_MAILER_PATH),要确保设置这些参数的配置行都位于调用该邮寄程序本身的行之前,否则只会使用旧的值。因此,通常把MAILER声明放在配置文件的结尾。

邮寄程序pop衔接spop程序,后者是mh邮件处理程序软件包的一部分,它实现了RFC1460中定义的POP协议(Post Office Protocol,邮局协议)。需要访问UNIX主机上的邮件的PC和Mac机器要用到它。邮寄程序cyrus用来配合CMU的IMAP服务程序使用,它有两种类型:cyrus用于把邮件投递到用户的邮箱,cyrusbb用于把邮件投递到一个中央布告栏。邮寄程序cyrus也能理解user+details式的句法,它的MAILER说明必须出现在local邮寄程序的说明之后。

邮寄程序fax把Sam Leffler的HylaFAX软件包集成到了邮件系统中。SUSE包含的这个邮寄程序是/usr/bin/faxmail;Red Hat和Debian默认不带HylaFAX。向user@destination.fax发送邮件会把消息主体当作一个传真文档进行发送。destination一般是一个电话号码。为了能将符号名(而不只是电话号码)作为destination,要使用一个由关键字索引的数据库文件。从www.hylafax.org可以得到HylaFAX。

您必须在/usr/local/bin中安装HylaFAX软件发布中的一个脚本,才能把HylaFAX和sendmail关联到一起。您还可能修改宏FAX_MAILER_PATH的值。要把传入的传真从缓冲区投递到用户的邮箱,仍然需要人工介入。您可以把传真文档转换为PostScript文件(用HylaFAX),并用GNU软件包ghostscript来查看它们。从www.gnu.org可以获得ghostscript。

邮寄程序qpage衔接QuickPage软件,把电子邮件投递到您的呼机。有关QuickPage的更多信息请参见www.qpage.org。

上述的宏VERSIONID、OSTYPE、DOMAIN和MAILER都是建立一个基本的hostname.mc文件所需要的。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。