发信人: albin.bbs@bbs.dlut.edu.cn (阿乐斌), 信区: cnunix
标  题: 电子邮件环境之生成(3)(钱飞著)
发信站: 碧海青天 (Thu Oct 16 20:19:31 1997)
转信站: Lilac!ustcnews!ustcnews!sjtunews!DUT
出  处: rose.dlut.edu.cn

【专题介绍】 
                                   大规模计算机网络主要服务之管理方法
                                                    (2)

                                       电子邮件环境的生成方法(3) 

2.2 邮件服务器系统(Mail Server Type) 

如前期所述,在邮件服务器系统上为各客户机提供Email缓冲池, 可以有利于信 件之日常管理,和统一用户环
境. 

设定例: 

邮件服务器计算机名: beijing
邮件客户机名: client1, client2, client3
所在域名: domain.cn
邮件服务器别名: domain.cn, www.domain.cn 

(a)编辑定义文件 % vi domain.cn.def 

# 定义版本分隔符为"-"
VERSION_SEPARATOR=- 

# sendmail.cf文本文件版号(任意)
LOCAL_VERSION='mailspool.cn-1.0' 

# 定义sendamil.cf版本
CF_TYPE=R8 

# 定义计算机系统类型
OS_TYPE=solaris2.5 

# 定义域名
MY_DOMAIN=domain.cn 

# 定义服务器计算机名 
MY_NAME=beijing 

# 定义计算机邮件地址
OFFICIAL_NAME=beijing.domain.cn 

# 定义计算机别名 
MY_ALIAS='domain.cn www.domain.cn' 

# 决定FROM行格式(与计算机地址一致)
FROM_ADDRESS='$j' 

# 指定信件地址补充方式 
CANON=short 

# 决定BITNET传送方式
BITNET=no 

# 指定是否在信件头上添加"Errors-To:"行 
USE_ERROR_TO='True' 

# 指定出错信件的受理者
COPY_ERRORS_TO='root' 

# 指定是否受理本域信件 (1)
ACCEPT_LOWERS=yes 

# 指定下属客户机名表现方式 (2)
LOWER_MATCH_STYLE=lw-file 

# 指定下属本域客户机名表文件 (3)
lw_FILE_PATH='/etc/mail/sendmail.lw' 

说明: 

(1) 需要受理邮件服务器所在域之信件时可以指定ACCEPT_LOWERS.
      yes: 受理发往本域的所有信件.
      no: 不受理发往本域的信件.
      也可以直接给该参数指定域名但请注意,在指定时需要在域名前加".",例如:
      ACCEPT_LOWERS=.domain.cn 

(2)当已经给ACCEPT_LOWERS参数指定了yes或域名时,用LOWER_MATCH_STYLE参数 来指定具体受理相应域内哪
些客户机之信件.指定方法有一下几种: 
      lw-file: 使用/etc/sendmail.lw文件来定义客户机名表. 
      !lw-file: 受理/etc/sendmail.lw文件中所定义的地址以外的客户机信件. 
      one: 在*.MY_DOMAIN中仅受理MY_DOMAIN左侧为单地址的客户机信件. 
      例如: 受理形如 beijing.domain.cn 之地址的客户机信件,但 
      不受理形如 beijing.sub.domain.cn 之地址的客户机信件. 
      any: 受理本域内所有客户机信件. 

      Mdt> (3) 当已经给 LOWER_MATCH_STYLE 参数指定了 lw-file, 或 !lw-file 时, 用 lw_FILE_PATH参
      数来指定客户机名表文件之路径. 该参数之省缺值为: 
      /etc/sendmail.lw 

(b)生成cf文件 

% make domain.cn.cf 

(c)编辑客户机名表文件 

% vi /etc/mail/sendmail.lw 

client1
client2
client3 

注意这里不可带域名(即,不带MY_DOMAIN部). 

然后请按前期所介绍的方法进行测试和安装. 

需要注意的是, 这里所介绍的是同一域内的邮件服务器之sendmail.cf生成方法. 如果您想为一个跨域服务
器制作sendmail.cf,可以对上述定义文件例进行修改. 将 (1)-(3)修改为: 

# 指定是否使用受理地址文件名表 (1')
ACCEPT_LOWERS=yes 

# 指定受理地址文件名表文件路径 (2')
aa_FILE_PATH='/etc/mail/sendmail.aa' 

并编辑地址文件名表文件,添加相应的客户地址.例如, 

client1.domain1.cn
client2.domain2.cn
client3.domain3.cn 

注意,与LW文件不同,这里需要指定全称名. 

2.3 邮件客户系统(None Spool Type) 

如前期所述, 由于在邮件客户系统上不具备独自的信件缓冲池, 所以在收发信 件时需要委托E-mail服务器
来进行中继. 

对上述设定例,定义文件内容如下: 

% vi client.def 

# 定义版本分隔符为"-"
VERSION_SEPARATOR=- 

# sendmail.cf文本文件版号(任意)
LOCAL_VERSION='mailclient.cn-1.0' 

# 定义sendamil.cf版本
CF_TYPE=R8-null 

# 定义计算机系统类型
OS_TYPE=solaris2.5 

# 定义域名
MY_DOMAIN=domain.cn 

# 定义服务器计算机名 
MY_NAME=client1 

# 定义计算机邮件地址
OFFICIAL_NAME=client1.domain.cn 

# 定义邮件服务器
SPOOL_HOST='beijing.domain.cn' 

对生成的client.cf进行测试,确认动作是否正确. 

   % /usr/lib/sendmail -bt -C./client.cf
   ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
   Enter <ruleset> <address>
   rewrite: ruleset   3   input: user @ host . domain . cn
   rewrite: ruleset   3 returns: user @ host . domain . cn
   rewrite: ruleset   0   input: user @ host . domain . cn
   rewrite: ruleset   0 returns: $# local $: user @ host . domain . cn
   > 5 user@host.domain.cn
   rewrite: ruleset   5   input: user @ host . domain . cn
   rewrite: ruleset   5 returns: $# relay $@ domain . cn . $: user @ 
                                 host . domain . cn
   > 

由测试结果可见, 发往user@host.domain.jp的信件已经正常的转发给邮件服务 器(beijing). 

2.4 中继站系统(Mail HUB Type) 

中继站系统是一种网络高层邮件服务器系统.尤其是当网络中含有UUCP线路时, 将常会用到这种系统. 

设定例: 

中继站计算机名: hubhost.domain.cn 

 二级邮件服务器名
                    担当子域
                                    连接形式
 mailserv1
                    sub1.domain.cn
                                    TCP/IP
 mailserv2
                    sub2.domain.cn
                                    TCP/IP
 mailserv3
                    sub3.domain.cn
                                    UUCP


(a)编辑定义文件 

% vi hubhost.def 

# 定义版本分隔符为"-"
VERSION_SEPARATOR=- 

# sendmail.cf文本文件版号(任意)
LOCAL_VERSION=hubhost 

# 定义sendamil.cf版本
CF_TYPE=R8 

## 定义计算机系统类型 
OS_TYPE=linux 

# 定义域名
MY_DOMAIN='domain.cn' 

# 定义计算机名
MY_NAME=hubhost 

# 定义计算机邮件地址
OFFICIAL_NAME='hubhost.domain.cn' 

# 定义计算机别名
MY_ALIAS='domain.cn' 

# 决定FROM行格式(与计算机地址一致)
FROM_ADDRESS='$m' 

# 决定BITNET传送方式
BITNET=no 

# 指定是否在信件头上添加"Errors-To:"行
USE_ERRORS_TO='True' 

# 指定出错信件的受理者
COPY_ERRORS_TO='MAILER-DAEMON' 

# 指定是否受理本域信件 
ACCEPT_LOWERS=yes 

# 指定下属客户机名表现方式
LOWER_MATCH_STYLE=lw-file 

# 指定下属域邮件服务器名表文件 
lw_FILE_PATH='/etc/mail/sendmail.hub' 

# 指定静态寻径表 
STATIC_ROUTE_FILE=domain.deliver 

(b)编辑下属域邮件服务器名表文件 

% vi /etc/mail/sendmail.hub 

sub1.domain.cn
sub2.domain.cn
sub3.domain.cn 

(c)编辑静态寻径表 

% vi domain.deliver 

GW smtp:mailserv1.domain.cn
DOM sub1.domain.cn 

GW smtp:mailserv2.domain.cn
DOM sub2.domain.cn 

GW uucp:mailserv3.domain.cn
DOM sub3.domain.cn 

注意,静态寻径表与下属域邮件服务器名表文件不同, 前者将在生成sendmail.cf时 嵌入sendmail.cf中,后
者与sendmail.cf无关,可以动态变更. 

(d)测试 

测试结果如下.(因行幅所限,结果中进行了适当的改行,并省略了一些中间结果) 

   % /usr/lib/sendmail -bt -C./hubhost.cf
   ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
   Enter <ruleset> <address>
   > 3,0 root                   <----   本地测试
   rewrite: ruleset   0   input: root
   rewrite: ruleset   0 returns: $# local $: root
   > 0,3 usr@host.come.or.jp
   rewrite: ruleset   0   input: usr @ host . domain.cn
    ...
   rewrite: ruleset   3 returns: usr < @ host . domain.cn >
    ...
   rewrite: ruleset  88   input: < smtp : host . domain.cn > : 
                                usr < @ host . domain.cn >
    ...
   rewrite: ruleset   3 returns: $# smtp $@ host . domain.cn . $: 
                                usr < @ host . domain.cn >

   > 3,0 usr@host.sub1.come.or.jp   <---- 测试子域 sub1
   rewrite: ruleset   0   input: usr @ host . sub1 . domain.cn
    ...
   rewrite: ruleset   0   input: usr < @ host . sub1 . domain.cn >
    ...
   rewrite: ruleset  88   input: < smtp : mailserv1 . domain.cn > : 
                                usr < @ host . sub1 . domain.cn >
    ...
   rewrite: ruleset   3 returns: $# smtp $@ mailserv1 . domain.cn . $: 
                                usr < @ host . sub1 . domain.cn >

   > 3,0 usr@host.sub2.come.or.jp   <---- 测试子域 sub2
   rewrite: ruleset   0   input: usr @ host . sub2 . domain.cn
    ...
   rewrite: ruleset  88   input: < smtp : mailserv2 . domain.cn > :
                                 usr < @ host . sub2 . domain.cn >
    ...
   rewrite: ruleset   3 returns: $# smtp $@ mailserv2 . domain.cn . $: 
                                usr < @ host . sub2 . domain.cn >

   > 3,0 usr@host.sub3.come.or.jp   <---- 测试子域 sub3
   rewrite: ruleset   0   input: usr @ host . sub3 . domain . cn
    ...
   rewrite: ruleset  88   input: < uucp : mailserv3 . domain . cn > : 
                        usr < @ host . sub3 . domain . cn >
    ...
   rewrite: ruleset   3 returns: $# uucp $@ mailserv3 . domain . cn $: 
                        usr < @ host . sub3 . domain .  cn >

                                      (钱飞/fei@come.or.jp)

--
※ 来源:.碧海青天 bbs.dlut.edu.cn.[FROM: 202.118.65.49]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:208.486毫秒