Linux 版 (精华区)
发信人: zhili (北侠), 信区: twunix
标 题: 电子邮件环境之生成(3)(钱飞著)
发信站: 哈工大紫丁香 (Mon Jan 5 04:22:50 1998), 转信
From: albin.bbs@bbs.dlut.edu.cn (阿乐斌)
Date: 16 Oct 1997 12:19:31 GMT
===============================================================================
【专题介绍】
大规模计算机网络主要服务之管理方法
(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]
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bbs@bbs.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:206.694毫秒