发信人: 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)
页面执行时间:213.147毫秒