Linux 版 (精华区)

发信人: zhili (北侠), 信区: twunix
标  题: 专题介绍●电子邮件环境之生成(钱飞著)
发信站: 哈工大紫丁香 (Mon Jan  5 04:22:38 1998), 转信

 From: albin.bbs@bbs.dlut.edu.cn (阿乐斌)
 Date: 16 Oct 1997 12:11:38 GMT

===============================================================================
【专题介绍】 
                                    大规模计算机网络主要服务之管理方法
                                                     (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]

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bbs@bbs.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:206.899毫秒