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

Sendmail第六章:邮件中枢与分发代理

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

6.2.1 测试client.cf文件

  在命令行下执行:

% /usr/lib/sendmail –oQ/tmp –Cclient.cf –bp

  注意,你需要在命令行中加上-oQ/tmp,它将阻止sendmail改变mqueue目录。如果你忽略这个开关,sendmail会出现混乱、错误:

cannot chdir((null)):Bad file number

  而-Cclient.cf开关则告诉sendmail使用当前目录中的client.cf文件,而不是系统中的/etc/sendmail.cf文件。而-bp开关则是让sendmail打印出队列的内容。以上命令行将产生如下所示的输出:

No local mailer defined

  然而,缺少一个local mailer并没有什么大不了的。Sendmail程序在输出它后,就结束了,说明没有发现其它错误。

6.3 本地分发代理

  当你运行了sendmail,它曾抱怨没发现本地分发代理定义。为了让它更快乐,我们就将下面的定义加入到client.cf文件中去。你可以使用以下命令,从/etc/sendmail.cf中抄过来:

% grep “^Mlocal” /etc/sendmail.cf << client.cf

  注意,^M是真实的两个字符:^和M,而不是CTRL-M。现在,

  我们启动编辑器,然后调入client.cf文件,你将看到类似下面的内容:


# This is a comment
V7  # this is another comment
# Delivery agent definition to forward mail to hub 
Mhub, P=[IPC], A=IPC $h 
Mlocal, P=/bin/mail, F=lsDFMAw5:/|@rmn, S=10, R=20/40, A=mail –d $u

  你将注意到有三个新的等式,它比我们原来的hub等式复杂。这个新的M配置命令声明一个符号名,就象hub一样。在这里,我们用的名字是local。尽管,local定义对于一个真正在运行的sendmail.cf配置来说是十分重要的,而在此呢,我们仅仅是为了让sendmail不抱怨。

  这个新的分发代理定义是由六个部分组成的(每个部分使用逗号隔开),一个符号名和五个等号。其中F=、S=和R=是新出现的。而关于M,P=和A=都在介绍hub那一节中介绍过了。

  M 所有的邮件分发代理的定义都是从M开始的,如:


Mhub,  P=[IPC],A=IPC $h
Mlocal, P=/bin/mail, F=lsDFMAw5:/|@rmn, S=10, R=20/40, A=mail –d $u

  分发代理的符号名就紧跟在M命令之后,中间没有空格。在以上的例子中,符号名是hub和local。名叫hub的分发代理用于将邮件转发给邮件中枢。而local分发代理则将邮件分发给本机的用户。

  P=在等号后面指出邮件分发程序的全路径名:


Mhub,  P=[IPC],A=IPC $h
Mlocal, P=/bin/mail,  F=lsDFMAw5:/|@rmn, S=10, R=20/40, A=mail –d $u

  你的程序名可能与这里不同,但通常,local邮件分发代理都是将邮件放入用户的邮件spool文件中。

  A= 在等号后面指定这个邮件分发代理运行时的参数。


Mhub,  P=[IPC],A=IPC $h
Mlocal, P=/bin/mail,  F=lsDFMAw5:/|@rmn, S=10, R=20/40, A=mail –d $u

  注意,在local中使用了$u宏,而hub则使用了$h宏。$u宏包含接收者的名字(如bob),而$h宏则是包含接收主机的名字(如here.us.edu)。宏将在下一章说明。习惯中,这个部分一般放在最后。

  以下三个部分是在local定义中新出现的,在hub的定义中并未使用。

  F= 在等号后面指定确定的标记,用来告诉sendmail更多关于分发代理的东西。每一个标记都是单个字符(要么设置,要么不设置)。


Mhub,  P=[IPC],A=IPC $h
Mlocal, P=/bin/mail,  F=lsDFMAw5:/|@rmn, S=10, R=20/40, A=mail –d $u

  这儿有许多标志可供选择。这些标志将在第30章分发代理中说明,而在后面的几章中也会说明一些。

  S= 在等号后指定使用哪一个规则集来重写发送者地址:


Mhub,  P=[IPC],A=IPC $h
Mlocal, P=/bin/mail,  F=lsDFMAw5:/|@rmn, S=10, R=20/40, A=mail –d $u

  由于不同的分发代理使用的地址格式不尽相同,所以有时需要重写发送者地址。

  例如,[IPC]代理使用user@host.domain的格式,而uucp代理则使用host!user格式。

  再此,指定了分发代理使用第10规则集来重写发送者地址。我们将在第8章:地址和规则中详细地说明。

  R= 在等号后面指定使用哪一个规则集来重写发送者地址:


Mhub,  P=[IPC],A=IPC $h
Mlocal, P=/bin/mail,  F=lsDFMAw5:/|@rmn, S=10, R=20/40, A=mail –d $u

  同样的道理,我们需要重写接收者地址。在此,指定使用规则集20重写信封地址,使用规则集40重写信头地址。

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



上一篇:Sendmail第五章 sendmail.cf文件   下一篇:Sendmail第七章 宏

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