Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

Sendmail第五章 sendmail.cf文件

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

5. sendmail.cf文件

  在sendmail的配置文件sendmail.cf中的文本,有的形如MODEM的噪声,有的形如Dithers的咒语一样:


R$+@$=w         sendmail.cf文件
{$/{{.+            modem的噪声
!@#!@@!     Dithers的咒语
对于生手而言,要构建象下面的配置文件,一定是一件恐怖的事情:
R$+@$=W   $@$1@$H user@thishost -< user@hub
R$=W!$+$@$2@$H   thishost!user -< user@hub
R@$=W:$+  $@@$H:$2   @thishost:something
R$+%$=W   $@$<#$1@$2   user%thishost

  不过,如果回想起以前学习C语言时,你是否会对这个表达式感到恐惧呢?

# define getc(p)(--(p) -<_cnt<=0? ((int)*(p)-<ptr++):_filbuf(p))

  就象任何一个新语言一样,学习sendmail.cf文件中所使用的语言需要时间和实践。在本章中,我们将介绍这个语言,不会在此只是对其作一个入门性的概述。

5.1概要

  sendmail.cf文件是sendmail每次启动时要读取的配置文件。它包含了sendmail启动时必须的信息。它列出了所有重要文件的位置,指定了这些文件的缺省权限。包含了一些影响sendmail行为的选项。更重要的是,它还包含了地址重写(rewriting addresses)规则。

  Sendmail.cf文件是按行组织的。一个配置命令行,均是由字符开头的,而且每行只有一个命令:


V7  正确的
 V7  不正确,前面多了个空格
V7 Fw/etc/mxhosts  不正确,一行中有两个命令
Fw/etc/mxhosts  正确

  每一个配置命令行,是由命令加上特定参数构成的。例如,命令V的参数是一个数字,而F命令的参数则是字母w,再加上绝对路径。在表5-1中完整地列出了所有配置命令:

命令 说明


 V定义配置文件的版本(从8.6版开始才要求)
 M 定义一个邮件传送代理
 D 定义一个宏
 R 定义一个地址重写规则
 S 声明一个规则集
 C 定义一宏集
 F 从一个文件与管道中定义一宏集
 O 定义一个选项
 H 定义一个信头
 P 定义传送优先级
 T 声明受托用户(在8.1版忽略,8.7版重用)
 K 声明一个key字数据库(从8.1版开始使用)
 E 定义一个环境变量(从8.7版开始使用)
 L 包括扩展的负载均衡支持

  表5-1sendmail.cf文件中的配置命令一览表

  有一些配置命令,象V只会在sendmail.cf文件中出现一次,而有些象R命令就会多次在配置文件sendmail.cf中出现。

  空行、以“#”开始的行将被处理为注释行而被忽略。一个以tab开始的行,则说明是上一行的继续,如:


# a commnet  注释行
V7
/Brekeley  V7命令的继续

tab

  除了一个命令,一个空行,一个空格,一个tab,或一个#字符以外,其它情况都是错误的。如果sendmail程序发现这种情况,将打印出如下警告,并忽略此行,然后接着读取后面的配置:

sendmail.cf : line 15:unknown control line “v6”

  在这,sendmail找到了一行以v开始的行。由于小写的v不是一个有效的命令,sendmail将发出警告。而行号则指出了这个错误所在行。

  下面几个小节将对每一种命令进行简单的实例说明。而这些命令的作用将会在本教程中阐述。所以如果在本节中无法完全理解的话,也不必担心。因为这里所有神秘的东西,在本书结束时都将变得十分清晰明白。

5.2最小配置

  最小的配置的文件可以是空文件。你可以使用以下命令来创建这个文件:

% cp /dev/null  client.cf

  我们会慢慢地往这个文件中添加配置。将其命名为client.cf是为了避免覆盖了系统中的sendmail.cf文件。

  现在,我们再运行sendmail,测试这个新配置文件的有效性:


% ./sendmail –Cclient.cf –bt >/dev/null
%

  命令行开关选项-C用于指定sendmail使用一个指定的配置文件。而开关选项-bt则告诉sendmail运行在rule-testing模式下。注意,sendmail读取你的空配置文件,运行,没有任何提示。同时注意当在第2章编译完后无法运行sendmail,但现在你可以了。那是因为当时你没有配置文件,而现在有一个了(尽管这个文件是空的)。

5.2.1 版本

  为了防止旧版本的sendmail因读取新版本的配置文件而破坏,在sendmail 8.1开始引入了一个V命令,这个命令的格式如下:

V7

  编辑文件client.cf,然后加上这一行。“V”必须位于行首。后面跟的版本号必须是7,才能够使所有8.8版的sendmail.cf中的新功能生效。数字7是sendmail.cf的语法,表示有7个主要的变化,更详细的请参考27.5小节。

5.2.2 注释

  注释语句能够帮助其他人理解你的配置文件。同时,他们也能通过注释记起你几个月前的修改。注释语句对sendmail的执行速度影响极小,所以你无需担心这一问题。前面我们说过,以#开始的行,被sendmail认为是注释行,整行将被忽略。例如:

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Sendmail第四章:如何运行sendmail   下一篇:Sendmail第六章:邮件中枢与分发代理

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号