发信人: albin.bbs@bbs.dlut.edu.cn (阿乐斌), 信区: cnunix
标 题: 专题介绍●电子邮件环境之生成(钱飞著)
发信站: 碧海青天 (Thu Oct 16 20:11:38 1997)
转信站: Lilac!ustcnews!ustcnews!sjtunews!DUT
出 处: rose.dlut.edu.cn
【专题介绍】
大规模计算机网络主要服务之管理方法
(2)
电子邮件环境的生成方法(1)
基本系统生成以后,为了使自己的工作站早日入网,人们最关心的既是如何与外 界进行Email交换.众所周
知,Email为当今网络之主要服务项目之一,各种基于Email 的网络服务不胜枚举.例如:用Email获取FTP文件,
捡索whois信息,参加邮件组讨论, 订购电子新闻等. 最近,利用Email于对话性较强的gopher,以及www进行文
件自动交 换的应用非常引人注目.因此,只要能够正确开通Email服务,人们便可以享用Intern et的大部分资
源,获取大量的有用信息.
从本期开始, 本连载就Email系统之基本生成方法,及常用管理方法进行专题介 绍.
1. Email环境的关键 -- sendmail
用户在实际利用Email时, 所要用到的命令一般为mail命令,或一些其他专用命 令.这些直接与用户有关的,
用于收发Mail的命令,或程序一般统称为MUA(Mail User Agent).通常,MUA的使用程序有恨多.例
如,MH,MNEWS,ELM等等.
相对于此,将来自MUA的信件转发给指定的用户的程序一般被称之为 MTA (Mail Transfer Agent). 在UNIX系
统上,最著名的MTA既是sendamil程序.sendmail是美国 加州大学勃克利分校以Allman先生为中心的研究组所
开发研制的优秀无偿软件.
sendmail(/usr/lib/sendmail)从各种MUA程序接收信件后, 按照自身的控制格 式文件(/etc/sendmail.cf)
中所描述的规则向外界转发信件. 因此,Email环境的成 败将取决于sendmail.cf的设定是否合适.
MUA MTA
+---------------+
| /bin/mail |--->|
+---------------+ |
+---------------+ s +----------------------+
| /usr/ucb/mail |--->e ---->| /var/spool/mail/$usr |
+---------------+ n +----------------------
+---------------+ d +----------------------+
| MH |--->m ---->| /usr/bin/uux |
+---------------+ a +----------------------+
+---------------+ i +----------------------+
| mnews |--->l ---->| workstation |
+---------------+ | smtp +----------------------+
+---------------+ |
| elm |--->|
+---------------+
(图1. Email系统的基本结构)
图1中给出了Email系统的基本结构图. Email系统看上去非常简单,实际上却非 常复杂.
首先,用户需要利用mail等MUA程序编辑并发出信件. mail命令将为用户所编辑 的信件追加一些相应的信息
(mail head,称之为信件头),然后将该信件转交给sendm ail程序处理.sendmail对信件头进行解析,调查该信
件之转发方法及信件接收地址.
如果信件接收地址为本地计算机之用户地址,则将该信件追加到/var/spool/ma il目录下之相应用户(与用户
名同名)文件中. 如果件接收地址为UUCP线路之另一侧 之用户地址,则起动/usr/bin/uux经由UUCP转发信件.
如果线路为TCP/IP线路,则利 用SMTP协议与sendmail进行通信转发信件.
2. Email环境的设计
在设计Email环境时,一般应遵循以下规则.
(1)Email服务器的集中
在多机网络环境中应注意Email环境的统一配置,同一组织内的Email服务器不宜 过多.否则,将增加管理负
荷.
(2)共享信件缓冲池时,需要考虑资源竞争问题
在小规模网络中,为了实现Email之共享环境, 管理人员一般利用NFS将各台UNIX 工作站之信件缓冲池
(/var/spool/mail)mount到Email服务器上.这时,需要注意 的是,信件系统是一种典型的分布处理环境, 对
于共享文件如果文件自琐(lock) 问题处理不够得当,有时将会引起重大事故(轻则丢失信件,重则损坏整个硬
盘系 统).
(3)统一信件代码
在传统的UUCP中继网络上,网络上各个主要Email中继站上一般采用"7位通"(7位 代码)之传递方式. 因此,要
透过广域网传递多字节文字(中日文等)信件时,必须 进行适当的代码转换.在日本,网络上的省缺规定为7位
JIS代码. 这就是说,用户 利用MUA发送信件时,必须将信件文本转换成JIS代码文本,或利用专用JIS代码视
窗,或编辑器来直接编辑JIS码文件.
近年来,随着广域网技术之发展,sendmail(V8)等MTA之改进,在点对点(point to point)之TCP/IP线路上已经
可以实现直接"8位通"之信件传递. 笔者在日常工作 中也常常与中国国内网友直接交换GB代码信件.但是,需
要注意的是,在一些站点 上,由于MTA版本过于陈旧, 经由这些站点转发的8位码会被自动过滤成7位码(丢 掉
高位码),造成乱码.因此,这时,有必要确认接收侧之MTA版本.可以相信在不远 的将来,广域网上之工作站都
将陆续切换成新的MTA(sendmail V8以上).
(4)不断更新sendmail版本
sendmail作为无偿软件尚在不断地进行着本本更新,以排除安全性问题.众所周 知,利用sendmail所存在着的
一些漏洞来进行网络非法侵入的hacking活动仍很盛行. 为了保护您的系统避免外侵,建议各个网络管理者跟
踪sendmail之版本,尽可能地采 用最新版.目前的最新版本为sendmail.8.8.4.tar.gz. 本连载也将以次为例
加以说 明.
(5)确定自己的邮件地址表现
各入网单位必须采用INTERNIC所指定的正式域名. 然后根据自己所在域来确定 邮件地址形式.
(6)确定线路类型
电子邮件系统的虚拟配信线路大致有以下4种.
a.机内直接配信
本地邮件传送方式.本地计算机内的用户向本地其他用户传递信件.
b.UUCP线路配信
经由UUCP线路向其他计算机上的用户传递信件.
c.SMTP配信
利用SMTP协议经由TCP/IP线路向其他计算机上的用户传递信件.
d.域名服务器下SMTP配信
发送信件时用域名服务器来查寻收方地址,利用域名服务器所提示的MX记录 来确定接收侧地址, 然后
用SMTP(或ESMTP)协议经由TCP/IP线路向其他计算 机上的用户传递信件.
3. sendmail.8.8.3之安装
sendmail的最新版本可从各主要FTP站点取到.这里以sendmail.8.8.3为例, 介 绍具体安装方法.
1.展开源程序
% tar zxvf sendamil.8.8.4.tar.gz
源程序展开后,在当前目录下之sendmail.8.8.4目录中,将含有以下内容:
Makefile
contrib/
makemap/
src/
READ_ME
doc/
praliases/
test/
FAQ
RELEASE_NOTES
mail.local/
rmail/
KNOWNBUGS
cf/
mailstats/
smrsh/
2.编译源程序
sendmail的编译工作将在src/目录下进行.
% cd src
首先请选择并修改Makefile.在Makefiles目录下装有以下各种用Makefile 样本,请针对安装环境选用.
./
Makefile.NeXT.2.x
../
Makefile.NeXT.3.x
Makefile.386BSD
Makefile.NetBSD
Makefile.A-UX
Makefile.NonStop-UX
Makefile.AIX
Makefile.OSF1
Makefile.AIX.2
Makefile.PTX
Makefile.AIX.4
Makefile.Paragon
Makefile.Altos
Makefile.RISCos
Makefile.BSD-OS
Makefile.SCO
Makefile.BSD43
Makefile.SCO.4.2
Makefile.CLIX
Makefile.SCO.5.x
Makefile.CSOS
Makefile.SMP_DC.OSx.NILE
Makefile.ConvexOS
Makefile.SVR4
Makefile.Dell
Makefile.SunOS
Makefile.DomainOS
Makefile.SunOS.4.0
Makefile.Dynix
Makefile.SunOS.5.1
Makefile.EWS-UX_V
Makefile.SunOS.5.2
Makefile.FreeBSD
Makefile.SunOS.5.3
Makefile.HP-UX
Makefile.SunOS.5.4
Makefile.HP-UX.10.x
Makefile.SunOS.5.5
Makefile.IRIX
Makefile.Titan
Makefile.IRIX.5.x
Makefile.ULTRIX
Makefile.IRIX.6.2
Makefile.UMAX
Makefile.IRIX64
Makefile.UNICOS
Makefile.ISC
Makefile.UNIX_SV.4.x.i386
Makefile.KSR
Makefile.UX4800
Makefile.LUNA
Makefile.UXPDS.V10
Makefile.Linux
Makefile.UXPDS.V20
Makefile.Linux.ppc
Makefile.Utah
Makefile.Mach386
Makefile.dgux
Makefile.NCR.MP-RAS.2.x
Makefile.dist
Makefile.NCR.MP-RAS.3.x
Makefile.maxion
Makefile.NEWS-OS.4.x
Makefile.uts.systemV
Makefile.NEWS-OS.6.x
这里,假定系统环境为SUN工作站,操作系统为Solaris.2.5.
% mv Makefile Makefile.org
% cp Makefiles/Makefile.SunOS.5.5 Makefile
请针对所需修改Makefile文件.
(li)如果您的计算机上没有使用BIND4.9.X域名服务,请修改Makefile第 41行:
修改前:
LIBS= -lresolv -l44bsd -lsocket -lnsl -lelf
修改后:
LIBS= -lresolv -lsocket -lnsl -lel
(li)为生成联机手册请修改第91行:
修改前:
MANDOC= -mandoc
修改后:
MANDOC= -tmac
修改后请用以下命令进行编译.
% ./makesendmail
所有编译结果将保存在obj.SunOS.5.5.sun4目录下.然后请用以下命令确 认安装位置,将安装位置处现
有文件备份.
% cd obj.SunOS.5.5.sun4
% make -n install
/usr/ucb/install -o root -g sys -m 6555 sendmail /usr/lib
for i in /usr/bin/newaliases \
/usr/bin/mailq \
/usr/bin/hoststat \
/usr/bin/purgestat;\
do rm -f $i;
ln -s /usr/lib/sendmail $i;
done
/usr/ucb/install -c -o root -g sys -m 644 /dev/null \
/var/log/sendmail.st
/usr/ucb/install -c -o root -g sys -m 444 sendmail.hf /etc/mail
将 /usr/lib/sendmail等复制成其他(例如:/usr/sendmail.org等)名称后, 执行以下命令进行安装.
% makesendmail install
(未完待续)
(钱 飞/fei@come.or.jp)
--
※ 修改:.albin 于 Oct 16 20:11:38 修改本文.[FROM: 202.118.65.49]
※ 来源:.碧海青天 bbs.dlut.edu.cn.[FROM: 202.118.65.49]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:206.858毫秒