BBS水木清华站∶精华区

发信人: bro (阿飞*桃谷小仙:PP), 信区: Unix 
标  题: sendmail(5) 
发信站: BBS 水木清华站 (Sat Nov 21 16:53:19 1998) 
 
定制sendmail.cf文件 
设置文件描述了邮发器(mailer),告诉sendmail怎样剖析地址和 
重写消息头,和设定各种sendmail选项.注意sendmail的宏和类 
都是大小写敏感的. 
 
只有一个域的层次(中继)网络 
在此例子中,所有的机器在邮件发送中功能相同.有一个或者多哥机器被 
指派为邮件中继,邮件在它们上集中为以后处理或者在发送前缓存在队列 
中. 
这个方案的好处在于:如果一些机器经常需要关掉或者无法通讯.在这个 
情况下,一个或者多个中继是可靠的;它们从不或者很少和网络断开,而被 
指派为邮件的集中点.当邮件要被发送到一个关机的机器的时候,邮件被 
发到中继,在那里它被缓存为以后的发送,而不是在原来的机器上缓存. 
当目的机器恢复运行的时候,就由中继而不是源机器来负责发送该邮件. 
邮件就可以即使的被发送到目的机器. 
这种层次方案还提供了管理上的便利.例如,如果一个机器持续down乐很 
长的时间,或者仅仅是不能接受邮件,这种情况在有一个集中的邮件队列的 
时候很容易检测到.一个管理员可以检测中继上的邮件队列来查看到哪个 
机器没有接受邮件.如果没有中继,发送到down下来的机器的邮件将被网络 
中的各个机器所缓存,问题就很难被发现乐. 
所有的机器都在engr.fictitious.com域下.在次网络中的机器名字是engr1, 
engr2,和engr3.邮件中继是engr1.网络中的其他机器是用engr1而不是直接 
发送邮件. 
每个非中继的机器用相同的sendmail.cf设置文件.在中继engr1上的sendmail.cf 
文件在D类的定义上略有不同. 
例如,用configmail脚本,在中继机器engr1上设置邮件: 
/usr/etc/configmail set directdomains engr.fictitious.com 
/usr/etc/configmail set localdomain engr.fictitious.com 
/usr/etc/configmail set forwarder NULL 
/usr/etc/configmail set rootdomain engr.fictitious.com 
用configmail脚本,在engr.fictitious.com域中其他的机器上设置mail. 
注意direcrtdomains参数在所有除乐中继engr1上的机器都设定为NULL 
/usr/etc/configmail set directdomains NULL 
/usr/etc/configmail set localdomain engr.fictitious.com 
/usr/etc/configmail set forwarder NULL 
/usr/etc/configmail set rootdomain engr.fictitious.com 
如果你要手动设置sendmail.cf文件,要对以下的宏和类做调整: 
D宏和类 
        在所有的机器上,要D宏包括engr.fictitious.com域名. 
        在中继engr1上,要确定D类包括engr.fictitious.com域名因此 
        engr1可以直接向engr.fictitious.com中的所有机器发送邮件. 
        在剩下的机器上,要确定D类为空,因此它们不直接向其他机器 
        发送邮件.(它们要把邮件发送到engr1) 
F宏和类 
        确定F宏和类为空. 
T宏 
        在所有机器上,改变T宏以包括engr.fictitious.com域名 
engr1要被识别为邮件中继站,特殊的中继站名字"relay"(在R宏中定义) 
必须是engr1的一个别名.在/etc/hosts文件中把relay别名设定给engr1 
或者是在DNS或者是NIS之类的东西中设定. 
 
带多个域的层次(Hierarchical)(中继)网络 
在这个例子中,层次模型被扩展到多个子域.这种环境是前一个的逻辑上的 
扩展,也是当网络中的机器数量增多的时候或许最简单的一种扩展方式.环 
境需要邮件寻址有使用域名. 
整个居于域称为corp.ficititious.com.在corp.fictitious.com域下有一个 
子域:fin.corp.fictitious.com.在corp.fictitious.com域中的机器是corp1, 
corp2,和corp3.在fin.corp.fictitious.com域下的机器是fin1,fin2和fin3. 
corp3是corp.fictitious.com域的中继;fin3是fin.corp.fictitious.com的 
中继. 
在这两个域(corp.fictitious.com和fin,corp.fictitious.com)中的机器 
和前面讲的设置很类似. 
用configmail脚本,在中继corp3上设置邮件: 
/usr/etc/configmail set directdomains corp.fictitious.com 
/usr/etc/configmail set localdomain corp.fictitious.com 
/usr/etc/configmail set forwarder NULL 
/usr/etc/configmail set rootdomain corp.fictitious.com 
用configmail脚本,在中继站fin3上设置邮件: 
/usr/etc/configmail set directdomains fin.corp.fictitious.com 
/usr/etc/configmail set localdomain fin.corp.fictitious.com 
/usr/etc/configmail set forwarder NULL 
/usr/etc/configmail set rootdomain corp.fictitious.com 
用configmail脚本,在corp.fictitious.com域中其他非中继站的机器上设置 
邮件.注意在非中继站的机器上参数directdomains被设置为NULL 
/usr/etc/configmail set directdomains NULL 
/usr/etc/configmail set localdomain corp.fictitious.com 
/usr/etc/configmail set forwarder NULL 
/usr/etc/configmail set rootdomain corp.fictitious.com 
用configmail脚本,在fin.corp.fictitious.com域中其他非中继站的机器上 
设置邮件.注意在非中继站的机器上参数directdomains被设置为NULL. 
/usr/etc/configmail set directdomains NULL 
/usr/etc/configmail set localdomain fin.corp.fictitious.com 
/usr/etc/configmail set forwarder NULL 
/usr/etc/configmail set rootdomain corp.fictitious.com 
如果你要手动设置sendmail.cf文件,需要对下列宏和类做调整: 
D宏: 
        对corp.fictitious.com域中的的所有机器,改变D宏使之包含 
        corp.fictitious.com域名. 
        对所有fin.corp.fictitious.com域中的机器,改变D宏使之包含 
        fin.corp.fictitious.com域名. 
D类: 
        在中继站corp3上,要确定D类包含corp.fictitious.com域名因此 
        corp3将把邮件直接发送到corp.fictitious.com中的各个机器上. 
        在中继站fin3上,要确定D类包含fin.corp.fictitious.com域名因此 
        fin3将把邮件直接发送到fin.corp.fictitious.com中的各个机器上. 
        在网络中其他的机器上,确定D类为空,这样它们就不直接发送邮件 
        到其他机器. 
F宏和类: 
        确定F宏和类为空. 
T宏: 
        在每个机器上,改变T宏使之包括corp.fictitious.com域名. 
对中继站corp3和fin3要象这样被公认,他们必须有特殊的中继名"relay"( 
象R宏定义的那样)做别名.在/etc/hosts文件中只能有一个中继别名. 
下面是怎样设置每个别名: 
        对corp3,别名relay.corp.fictitious.com(或者是"relay")应当 
        被包括在/etc/hosts的条目或者是相应的DNS或者是NIS中. 
        对fin3,别名relay.fin.corp.fictitious.com应当 
        被包括在/etc/hosts的条目或者是相应的DNS或者是NIS中. 
当你完成这个过程之后,继续"修改别名数据库" 
 
-- 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.78.167] 

BBS水木清华站∶精华区