LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3749|回复: 17

红旗LINUX3.0服务器版! 3.2正式版

[复制链接]
发表于 2002-7-28 11:42:01 | 显示全部楼层 |阅读模式
谁有呀?谢谢!!
 楼主| 发表于 2002-7-28 11:45:08 | 显示全部楼层

红旗3.0的日期弹出窗口中有两个星期六

红旗3.0的日期弹出窗口中有两个星期六!
真的很有意思,如何修改这个BUG:?
发表于 2002-7-28 12:50:39 | 显示全部楼层
我也没有见过正式版,不过红旗3.0的桌面版我是有的,原来装过,现在换成3.2的beta版了。。。
 楼主| 发表于 2002-7-28 13:09:32 | 显示全部楼层

我有六套正版红旗桌面版3.0,想来个SERVER试试

谢谢你,北南兄。
发表于 2002-7-30 20:23:35 | 显示全部楼层

yihome

你真是个“暴发户”竟然有六套redflag3.0,不是卖软件的吧!(说笑)用的怎么样?
 楼主| 发表于 2002-7-31 19:59:40 | 显示全部楼层

我没有时间,真的很想很想向你们学习呀

真的很想很想向你们学习呀,哎,过一个月后,看看有没有时间,还有,我很想在公司做个EMAIL服务器,兄弟们有没有好的建议呀。
发表于 2002-8-3 22:53:06 | 显示全部楼层

哈……哈……

这个……
请chase兄出山吧!我没搞过。
发表于 2002-8-4 06:06:55 | 显示全部楼层

全方位电子邮件服务

一下文章转自linuxaid试试看,希望对yihome有用
=======================
全方位电子邮件服务

摘要
  本文从全方位的角度看 Internet E-Mail 的架构规划及运作原理等等, 甚至实务层面的 Mail Server 安装设定细节, 这些笔者计划一一的提及, 希望这可以对仍在 Internet 门外的公司、企业有些帮助。(2002-07-22 11:41:07)

--------------------------------------------------------------------------------
By Wing, 出处:Linux Notes


  电子信件已经作为客户联络、技术支持、 远程教育 (成人教育)、 亲友联系甚至交易工具等等, 已经相当普遍, 不过笔者总感觉仍有很多公司不

  得其门而入, 因此, 笔者想办法把肚子里浅陋的经验搬出来, 从全方位的角度看 Internet E-Mail 的架构规划及运作原理等等, 甚至实务层面的 Mail

  Server 安装设定细节, 这些笔者计划一一的提及, 希望这可以对仍在Internet 门外的公司、企业有些帮助。

  

  以下的文章中, 笔者计划分三期介绍, 本文主要是轮廓性的介绍关于Internet 电子信件运作之原理以其它细节, 我也将提供具体的系统规划建议。 之后的两期笔者将介绍 Sendmail 及 Smail, 这两部份则完全都是由Unix 环境来讲。

1.关于 Mail 系统

  由于以下文章中, 我们将看到「Mail 系统」、「Mail 系统主机」、 及Mail Server」 等等 字眼, 这里有必要先做一些说明。

  本文所提到的「Mail 系统」之定义, 是指一部能够接收、投递、 转接(Relay 或 Gateway) 并提供使用者读取 Mail 的一部网络计算机主机系统。

2.Mail 软件

  对Unix 环境而言, 构成一部 Mail 系统的主要软件, 是 Sendmail 及 Smail等等, 这些都可以由 Internet 免费取得。 Sendmail/Smail 所提供的服务, 除了最基本的信件递送, 还有信件转递处理、 积存 (待送) 信件处理、 不同传输工具判断及退信处理等等, 这些是 Mail Server系统最基本的工作。 至于这里提到的传输工具, Smail及 Sendmail 都内建 SMTP 支援, 同时也可以搭配外部 UUCP 作为替代传输工具。 另外, 目前最新版的 Smail 及 Sendmail 也都支持 BIND。

  至于 Unix 环境的 Mail 使用者界面软件 (MUA), 如今也存在有像 ELM及 Pine 等等非常具有亲和力的软件, 这两个软件的使用场合, 必须先进入(log in) Unix 系统。 另外, 对 Unix 环境陌生的使用者来说, 系统规划者可以设计不同的读信方式作为选择, 支持 POP 协议的信件处理软件就是用在这场合。 POP Server软件在 Unix 机器执行, DOS、 Windows 或 Mac 端则安装支持 POP 的读信软件, 这样就可以成功把 Mail 应用整合在办公室环境下。

  当然也许也存在有非 Unix 的解决方案, 假如您找得到专家的话, 也不妨一试, 但是请先留意, 毕竟 Internet 上的机器主要仍以 Unix 为主, 您跟大部分人使用相同的环境的话, 出问题时, 要取得技术支持也比较容易。

  以下我们从网络实体带进 Mail 的话题来, 希望这可以进一步帮助读者朋友产生更具体的观念。

3.Mail Service 网络架构规划

前面介绍了软件, 这里我们则从网络硬件的角度来看 Mail规划。 以下建议二种架构, Unix Host 定位在 Mail server, 使用者的工作站可以为DOS、 Windows 或 Mac 机器。 (一) LAN 架构  
  架构 (一) 是典型办公室局域网络的情况, Unix 机器对外联机Internet 的方式可以用 (II) 串行通讯 (比方PPP 或SLIP), 也可以用(I) Ethernet 联机, 但这些不是本文的重点, 我们主要是想知道, 在这样架构下 Server及 Client 端各自所需要的软件为何。以下建议两种情况, A 直接在 Unix 环境应用, B 则是 DOS 或 Windows环境。

  A. Telnet 终端联机进入 Unix 主机, 利用 Unix 的Mail界面软件读信或寄信。

  Unix Server 软件需求:

  Telnet server (in.telnetd)

  SMTP (sendmail)

  MUA (mail、elm 或 pine)

  Client 端软件需求:

  DOS -- packet driver + NCSA Telnet

  Win -- packaet driver + Winsock Stack + Winsock Telnet client

  B. Client 端以独立的 Mail 软件读信, 该软件有独自的 MUA、 支持 POP收信及SMTP 送信。

  Unix Server 软件需求:

  POP server (pop3d)

  SMTP (sendmail)

  Client 端软件需求:

  DOS -- packet driver + 支持POP/SMTP的 Mail (Success 或 Pegasus)

  Win -- packaet driver + Winsock Stack + Winsock mail client

  (二) DIALUP 拨接架构


  架构 (二) 情形下, 我建议三种解决方案。

  A. Dialup 终端联机进入 Unix Host, 利用 Unix 的Mail软件 (pine、elm及 mail等等) 读信。

  Unix Server 软件需求:

  Modem server (getty, 或者用硬件 Terminal Server)

  SMTP (sendmail)

  MUA (mail、elm 或 pine)

  Client 端软件需求:

  DOS -- 终端机仿真软件 (MS-Kermit)

  Win -- 终端机仿真软件 (Terminal)

  B. Client 以 PPP/SLIP dialup 联机, 之后 client 端 Telnet 进 Unix

  Server端, 之后以 Server 端的Mail软件读信。

  Unix Server 软件需求:

  Modem server (getty)

  PPP/SLIP server (pppd/dip)

  Telnet server (in.telnetd)

  SMTP (sendmail)

  MUA (mail、elm 或 pine)

  Client 端软件需求:

  DOS -- PPP 或 SLIP driver + NCSA Telnet

  Win -- PPP 或 SLIP driver + Winsock Stack + Winsock Telnet client

  C. Client 以 PPP/SLIP dialup 联机, 之后 client 端以独立的 Mail 软体读信, 该软件有独立的读信软件并支持 POP 收信 及 SMTP 送信。

  Unix Server 软件需求:

  Modem server (getty]

  PPP/SLIP server (pppd、dip)

  POP server (in.pop3d)

  SMTP (sendmail)

  Client 端软件需求:

  DOS -- PPP 或 SLIP driver + NCSA Telnet

  Win -- PPP 或 SLIP driver + Winsock Stack + Winsock Telnet client

  以上介绍忽略了一个与 POP 非常类似的架构 IMAP, 此处读者在观念上可以直接把 IMAP 想成 POP, 至于细节上, 笔者后面会专门提到 IMAP。

  § 以上提到的相关软件

  Winsock Stack: WinKing、 WinSpan、 Trumpet Winsock 2.0B (都是商业软件, Trumpet Winsock 2.0B 是 Shareware)

  Winsock Mail: Euroda 144 (Freeware)、 Acacia Mail (Commercial)

  Winsock Telnet: Ewan 104, Qqtw 3986 (Freeware)

  Packat Driver: 网络卡驱动程序

  § 相关软件取得方法 (以 FTP取得)

  Trumpet Winsock 2.0B tpts1.seed.net.tw /UPLOAD/WINKING/Winsock_AP/twsk20b.zip

  EUDORA 144 tpts1.seed.net.tw /UPLOAD/WINKING/Winsock_AP/eudor144.exe

  WinKing DEMO tpts1.seed.net.tw /UPLOAD/WINKING/wkdemo.exe

  SUCCESS 2.0 ftp.iii.org.tw:/SEEDNET/success/all

  NCSA Telnet moers2.edu.tw /chinese-pub/ncsa/nctu//nctutel.zip

  PD: check out the discette that comes with your Ethernet card.

  Linux (A version of Unix, free): NCTUCCCA.edu.tw:/UNIX/linux/Slackware

4.关于 MUA -- Mail User Agent

  前面我们已经大致知道 Mail 的应用软件主要有传输部份以及读取界面部份, 以 Unix 环境来说, 传输部份 (指 SMTP) 内建在 Sendmail (或 Smail)里面, 而 读取部份就是我们这节所要介绍的。

  MUA -- 使用者界面软件, mail、 elm、 pine 软件属之, 这些是 UnixMUA, 在 DOS环境而言, 可以在 Internet 免费取得的 MUA 有 Success 及 Pegasus,Windows 则有 Euroda 及 Pegasus等等。

5.Unix 的 MUA

  九十年代的 Unix 环境其实已经存在有极具亲和力的网络应用软件, 尤其是那些存在于 Internet 的免费软件 (Freewares), 本文提到到 ELM 及Pine 就是其中之二, 我建议系统管理者取得并安装这两个软件。

  ELM souorce code:

  ftp://NCTUCCCA.edu.tw/packages/mail/elm

  Pine source code:

  ftp://NCTUCCCA.edu.tw/packages/mail/pine3.91.tar.gz

  Pine 甚至有中文版:

  ftp://g834315.hung.ab.nthu.edu.tw (140.114.202.26)/pub/cpine3.91/CPine-3.91.tar.gz

  或者 (ftp://NCTUCCCA.edu.tw/UNIX/linux/collect/source/network)

6.MTA & SMTP

  当使用者完成写信动作, MUA 把该信的内容交付给实际负责信件投递的软件, 负责信件投递这层面的软件就是 MTA (Mail Transport Agent)。 以上 MUA、MTA 这些 名词其实一点也不重要, 比较重要的是对 Mail 的运作的理解。

  SMTP (Simple Mail Transfer Protocol, RFC 821) 是规范 Internet电子邮件递送的标准 (另外 RFC 822 规范信件格式)。 SMTP 的投递方式是点对点 (End-to-end) 交谈式传送, 这传送是实时的, 中间可以不经过第三者转递。 不过由于 Internet 上的 Mail 主机系统横跨相当多不同的网络,因此存在所谓 Mail Gateway (或 Mail Relay)。

  以下我们就用一个图表来呈现各层面 Mail软件的关系。 从下图中我们可以看出, 最左边及最右边是档案系统下的操作, 最左边中使用者在档案系统下读信或写信 (MUA), 当有信件要外送时, 这工作都经由第二个方块的SMTP 程序负责执行。 这 SMTP 程序要收送信件时, 会直接 (透过网络) 与远端另外一部 Mail 系统的 SMTP 程序打交道, 信件内容在这时被拷贝一份到收信端这边, 除非对方 SMTP 通知其确实已经收到, 送信端端的 SMTP程序不会把信件删除, 这可以确保信件不会因为任何缘故而漏失 (比方传送煞那网络线路突然中断)。


  (本图取自 RFC 821 文件)

7.POP (Post Office Protocol), POP3 over TCP/IP

  POP 可视为 off-line mail 处理协议, 不同于一般电话拨接终端机仿真联机, POP 只适用在支持 TCP/IP 的网络。 由于系统管理人力的考量, 大部份的公司或单位只规划一部 Mail系统主机, 其它的工作站并不需要有独立收发信件的能力, 尤其是针对那些 DOS、Windows或 Mac的工作站来说, 这些工作站的使用者可以透过 POP 协议来收取其个人在 Mail系统主机的信箱。 目前最新版的 POP 协议是 POP v ersion 3, 我们一般就称为 POP3。

  POP 跟其它 TCP/IP 网络软件一样, 同样是以 Client-Server 型态存在。系统管理者可以在原本 Mail 主机系统上加装 POP server软件, POP 软件对原本 Mail 系统的运作方式并没有影响, POP 单纯只提供信箱下载服务而已。

  至于使用者机器上, 系统管理者可以帮忙装设支持 POP 的读信软件, 我们称呼这部份为 POP client软件。 由于 POP 只是个收信协议, 通常这些读信软体还必须有 MTA 模块 (很多 Mail应用软件已经把POP、MTA及 MUA都整合一起, 所以一般使用者可以不需要知道这些细节)。 Internet 上有一些非常好用且免费的软件像是资策会的 Success (For DOS)及 Eudora144 (For Windows)都支持 POP 取信 SMTP送信, 另外商业版像是 Acacia Mail (For Windows)也用在这样场合。

  更具体的说, 对于想透过 POP 取信的使用者来说, 系统管理者必须在Unix 主机上为他 (或她) 设立一个帐号, 比方说开一个 yuan 帐号, 以后寄给 yuan 的信件就放在 Mail主机的 /usr/spool/mail/yuan 档案, 到此为止都与 POP 无关。 yuan 一早上班时, 开机进入 Windows环境, 并且进入 Eudora 软件, Eudora 这时透过其内建 POP client 与 Unix 主机的 POP server程序打交道 (Server会检查 Client送过来的 login ID 及 password), 正常的话, 这时才把 Unix 端的 /usr/spool/mail/yuan 档案下载到Windows端, Unix 端的 /usr/spool/mail/yuan 于是被归零, Eudora 这时就可 以开始阅读刚刚取得的信件。

  POP client 工作站的设定方式请自行参考各 Mail 软件本身, 假如读者观念还是无法贯通, 请反复参考前面介绍的网络架构规划, 应该不会很难。至于 POP server这一端的安装, 假设说把 POP server 程序安装在/usr/local/etc/in.popd, 这时在 /etc/services 及 /etc/inetd.conf 两个档案可以参考以下设定, 之后重新激活 inetd 程序即可。

## (in /etc/services)
pop-2           109/tcp                         # PostOffice V.2
pop-3           110/tcp                         # PostOffice V.3
## (in /etc/inetd.conf, 此设定指定 in.popd 由 inetd 激活)
pop-2   stream  tcp     nowait  root /usr/local/etc/in.popd  pop2d
pop-3   stream  tcp     nowait  root /usr/local/etc/in.popd  pop3d
## 把以上这两行加入 /etc/inetd.conf


  § POP server 取得方法

  对于可以上 Internet 的读者来说, 可以依照以下方式取得 POP3 server程序代码, 笔者提供两套, 有兴趣者选择其中之一即可, 不过先注明一点: 笔者不保证这软件可以在所有版本的 Unix 成功编译。 针对 Linux 的用户 来说,Slackware Linux 已经内 建有 /usr/sbin/in.pop3d server 程序, 所以无须额外上网络拿。

  ftp://NCTUCCCA.edu.tw/UNIX/linux ... qpopper2.1.3.tar.gz

  ftp://NCTUCCCA.edu.tw/UNIX/linux ... pd/pop3d-1001.tar.z

  对于 Linux 用户来说, Slackware Linux 系统已经内建有 POP server程序 (/usr/sbin/in.pop3d 或 /usr/sbin/in.popd), 您只要确定 /etc/services 及 /etc/inetd.conf 有打开, 就立刻可以使用。

  最后对 POP 协议细节有兴趣者, 可以自行拿 RFC 文件来阅读, POP3 在RFC 的编号是 RFC 1725。

8.IMAP (Internet Message Access Protocol), IMAP over TCP/IP

  IMAP 是用在 TCP/IP 网络的一个信件撷取协议。 IMAP 与 POP 是非常类似的东西, IMAP 同样是以 Client-Server 架构运作, IMAP 跟 POP 一样都是取信协议, Mail 软件必须另外搭配 SMTP 执行信件投递。

  笔者要介绍 IMAP的理由, 主要受中央研究院计算器中心吴杰先生 (jye@ccvax.sinica.edu.tw) 的一个观点 「Pine 支持 IMAP, 而 Pine 到处都可以用, 包括 DOS、 Windows、 Unix 及 VMS 等等」。 其实笔者平常读写信件都是在 Unix 环境使用 Pine, 为此也特地在 DOS还应使用 Pine, 我发觉DOS/Windows 环境的 PCPine 非常值得推荐, PCPine 可以免费由ftp://ftp.cac.washington.edu 在 /pine/pcpine 目录下取得。

  以下软件分析分为 Dialup PPP/SLIP 以及 LAN 两类。

  I. Dialup PPP/SLIP

  Unix Server 软件需求:

  Modem server (getty]

  PPP/SLIP server (pppd、dip)

  IMAP server (in.imapd)

  SMTP (sendmail)

  Client 端软件需求:

  DOS -- PPP 或 SLIP driver + PC Pine

  Win -- PPP 或 SLIP driver + Winsock Stack + PC Pine

  II. LAN

  Unix Server 软件需求:

  POP server (in.imapd)

  SMTP (sendmail)

  Client 端软件需求:

  DOS -- packet driver + PC Pine

  Win -- packaet driver + Winsock Stack + PC Pine

  架设 IMAP 环境时, 系统管理者要先帮使用者在 Unix 环境设立一个帐号, 之后, 使用者在自己的桌上就可以架设 IMAP cllient 软件。 这一点与POP 也是完全一样。

  IMAP server软件必须系统管理者自行架设, 取得管道是 ftp://ftp.cac.washington.edu/pine/unix-bin, 此处可以取得以下的版本 (这些都已经是可执行码, 无须再行编译)。

-rwxr-xr-x  1 172      0         1613123 Oct 11 20:53 imapd-bin.a32
-rwxr-xr-x  1 172      0         1134168 Oct 11 16:57 imapd-bin.hpux9
-rwxr-xr-x  1 172      0         1746119 Oct 11 17:27 imapd-bin.linux
-rwxr-xr-x  1 172      0          806431 Oct 11 17:48 imapd-bin.machten
-rwxr-xr-x  1 172      0          752350 Oct 11 17:13 imapd-bin.next
-rwxr-xr-x  1 172      0         1050540 Oct 11 18:06 imapd-bin.osf
-rwxr-xr-x  1 172      0          530322 Oct 11 17:47 imapd-bin.ptx
-rwxr-xr-x  1 172      0          548108 Oct 11 18:53 imapd-bin.solaris
-rwxr-xr-x  1 172      0          819200 Oct 11 17:11 imapd-bin.sun
-rwxr-xr-x  1 172      0          848380 Oct 11 17:15 imapd-bin.ultrix
-rwxr-xr-x  1 172      0          635229 Oct 11 20:52 pico-bin.a32
-rwxr-xr-x  1 172      0          504852 Oct 11 16:58 pico-bin.hpux9
-rwxr-xr-x  1 172      0          411068 Oct 11 17:28 pico-bin.linux
-rwxr-xr-x  1 172      0          431482 Oct 11 18:00 pico-bin.machten
-rwxr-xr-x  1 172      0          415370 Oct 11 17:15 pico-bin.next
-rwxr-xr-x  1 172      0          433290 Oct 11 18:05 pico-bin.osf
-rwxr-xr-x  1 172      0          491154 Oct 11 17:45 pico-bin.ptx
-rwxr-xr-x  1 172      0          176536 Oct 11 17:19 pico-bin.solaris
-rwxr-xr-x  1 172      0          360448 Oct 11 17:13 pico-bin.sun
-rwxr-xr-x  1 172      0          444408 Oct 11 17:16 pico-bin.ultrix
-rwxr-xr-x  1 172      0         4808719 Oct 11 20:51 pine-bin.a32
-rwxr-xr-x  1 172      0         3551052 Oct 11 16:58 pine-bin.hpux9
-rwxr-xr-x  1 172      0         1913542 Oct 11 17:31 pine-bin.linux
-rwxr-xr-x  1 172      0         2915495 Oct 11 18:50 pine-bin.machten
-rwxr-xr-x  1 172      0         2596823 Oct 11 17:22 pine-bin.next
-rwxr-xr-x  1 172      0         3219065 Oct 11 18:01 pine-bin.osf
-rwxr-xr-x  1 172      0         2844046 Oct 11 17:46 pine-bin.ptx
-rwxr-xr-x  1 172      0         1908388 Oct 11 17:30 pine-bin.solaris
-rwxr-xr-x  1 172      0         2637824 Oct 11 17:22 pine-bin.sun
-rwxr-xr-x  1 172      0         2365596 Oct 11 17:22 pine-bin.ultrix


  安装方法也很简单, 读者根据您的 Unix版本取得您要的 imapd 执行档,之后可以摆在 /usr/local/etc/in.imapd, 之后在 /etc/services 及 /etc/inetd.conf 各自增加一行定义:

  /etc/services 档案:

imap            143/tcp                         # IMAP V.4


  /etc/inetd.conf 档案:

imap   stream  tcp nowait  root /usr/local/etc/in.imapd  imapd


  另外, 对于 Linux 用户来说, Slackware Linux 2.1.0 系统已经内建有IMAP server 程序 (/usr/sbin/in.imapd), 您只要确定 /etc/services 及/etc/inetd.conf 有打开, 就立刻可以使用。

  最后对 IMAP 协议细节有兴趣者, 可以自行拿 RFC 文件来阅读, IMAP v4在RFC 的编号是 RFC 1730。

9.Internet E-Mail Routing 观念简介

  关于 Internet E-Mail 的 Routing 其实非常简单, 因为 SMTP 的传送是点对点运作, 既然只是两个主机对传, 就谈不上 Routing。 (留意, 我们这里的讨论, 已经忽略了 TCP/IP 更底层的部份)。 我们从前面图 1.1 中间的两个方块中, 可以看出两份 SMTP 程序彼此互传。

  不过以上说明也许不够具体, 以下我们就由计算机屏幕上实际观察一下过程。

  倘若我们发一封信到 yuan@[139.175.249.15] 这样的地址, 这封信会立刻从发信人所在主机, 送到 IP 地址为 139.175.249.15 这部主机, 这信的routing 就这么简单。 以下我们就来看看。

$ mail -v yuan@[139.175.249.15]

tpts1#$ yuan@[139.175.249.15]... Connecting to [139.175.249.15] via ether...
1 Trying 139.175.249.15...  connected.
2 220 h{T
3 >>> HELO tpts1.seed.net.tw
4 250 linux2.uuserv.net.tw Hello tpts1.seed.net.tw
5 >>> MAIL From:
6 250  ... Sender Okay
7 >>> RCPT To:
8 250  ... Recipient Okay
9 >>> DATA
A 354 Enter mail, end with "." on a line by itself
B >>> .
C 250 Mail accepted
D >>> QUIT
D 221 linux2.uuserv.net.tw closing connection
F yuan@[139.175.249.15]... Sent



  以上的讯息, 当使用者在 tpts1.seed.net.tw 这机器完成信件之后,该机器的 SMTP 程序(以 client角色) 接手把该信件投递给 139.175.249.15 这部机器的 SMTP 程序(server角色), 上面的讯息也就是两个 SMTP 程序之间的对话 (第一字段的数字不属于对话的一部份, 其只是标记, 方便阅读)。

  以上行数 3、5、7、9、B 及 D 为发信人端 Mail 主机所发出的讯息,其余的部份则是收信端 SMTP程序的响应, 笔者用口语翻译如下:

  3(发): 打招呼, 并附上自己的地址

  4(收): 回招呼

  5(发): 说明寄信人地址

  6(收): 知道了

  7(发): 我要寄给贵系统下的 yuan 使用者

  8(收): 察有此人, 请寄过来吧

  9(发): 发信端发出 DATA 指令, 这是告诉收信端的 SMTP程序 「从以下起就是信件的内容」

  A(收): 我知道了, 请送过来吧, 记得递送完成时, 用 . (句号) 符号通知我一下

  B(发): . 符号表示数据传送完成, 这封信就万事拜托了

  C(收): 没问题, 您的信已经被成功接收, 您尽管放心。

  D(发): 再见, 离线

  额外一提, 对于电子邮件应用来说, 我们很少直接指定 IP 地址, 而是使用 Domain Name居多, 以此例来说, 假如我们寄给 yuan@linux.uuserv.net.tw, 我们这端的 Mail系统会则会增加一道动作, 先查询 linux.uuserv.net.tw的对应 IP 地址, 其它的细节则完全 一样。

  Internet 上的信件传递的基本原理其实就是这么简单, 不过以上也是笔者过度简单化的结果。 由于我们住的这个世界越来越复杂了, 底下我们接着就来看看 Internet Mail运作其复杂的一面。

10.Mail Gateway (Mail Relay)

  前面介绍我们知道了, Internet 上的信件传送是点对点传送, 中间可以不经过第三者转接, 不过真实情况来说, 透过第三者 Mail Gateway 转递却也很普遍。

  所谓 Mail Gateway (有些朋友比较喜欢称为 Mail Relay, 都无妨), 就是有一部 Mail 主机它同时接连 TCP/IP Internet 网络以及其它网络 (比方BITNET、 UUCP或封闭性 TCP/IP 局域网络等等), 这样一部 Mail 主机就可以提供跨越网络之信件提供转递 (Gateway)服务。 请留意, 原发信主机与Mail Gateway主机之间仍然依 SMTP 标准递送。

  我们之前提到, 在SMTP 点对点实时递送情况之下, 假如没有收到收信端SMTP 响应说「信已经收到」, 送信端 SMTP 会一直保存该份信件, 并试图不断的重新投递, 也就是说, 信件要嘛在送信人端的主机系统, 要嘛就是在对方主机。 Mail Gateway 则直接冲击了这观念, 因为, 由于 Gateway存在,信件送出时可能不是直接投递给收信人的 Mail系统, 而可能是 Mail Gateway 代为接收了, 假若 Mail Gateway还来不及转递出去时系统出个重大失误, 信件丢失的机率就有可能增加。

  Mail Gateway 的存在毕竟有其理由, 以下笔者想到三种情况。

  第一,是针对那些没有直接 Internet 联机的网络而言, 比方 BITNET 及 UUCP用户, 其它利用间歇性 dialup 取得 Internet 信件者也都属于此类。

  第二,因为系统安全或其它理由, 不想让 Internet 用户直达单位内部网络, 这时信件的递送可以透过另一部 Mail 系统来转递。

  第三种情况, 则为顾虑到信件接收备援、 或者是中央集中收信的行政考量, 而透过 Mail eXchanger (MX, 也就是 Mail Gateway)来转递邮件。

  其实以上第二及第三点理由都可以透过 MX 来解决, 接下来笔者就要深入谈一下 MX。

  额外一提, 常有朋友问说, 如何把信送到 BITNET 用户。 方法有两个,

  第一, 系统管理者可以设定将所有 .bitnet 信件自动转递给 cunyvm.cuny.edu, 这样使用者可以正常寄信到 BITNET去, 就跟 Internet 信件没有不同 (以关 Sendmail/Smail设定方法在往后文章中会有介绍)。

  另外一个方法适合给使用者自力救济, 使用者可以把原本给 nobody@testnode.bitnet改寄到 nobody%testnode.bitnet@cunyvm.cuny.edu

11.MX and more mail routing

  MX (Mail eXchange) 的运作是透过 DNS (Domain Name Server) 注册MX 记录, 这项注册与一般 Domain Name注册类似, 不同的是, MX 记录所记载的 Domain Name 不一定有对应 IP, 而是指定某一部 Mail主机 (的地址)为其 Mail eXchanger。 由于没有 IP, 读者可以自然的推想, MX 的用途只有在 Internet E-Mail应用。 以下片段资料摘录自 linux.uuserv.net.tw 的 DNS 数据库 , 提供做为参考。

uuserv.net.tw.  IN      MX      5       linux.uuserv.net.tw.
                IN      MX      10      tpts1.seed.net.tw.
                IN      MX      20      aladdin.iii.org.tw.


  以上左边 uuserv.net.tw (也可以写作 UUserv.Net.tw, 大小写无关)就是这样一笔注册, 由于没有 IP 地址, 除了 linux.uuserv.net.tw 这主机之外, 没有其它 Internet主机知道这部机器究竟在那里, 只知道透过BIND (而不是 gethostbyname) 可以得知提供这机器转递信件的主机为linux.uuserv.net.tw。

  照这样的注册, 一封信寄给 yuan@uuserv.net.tw 的话, 该信就会被送到 linux.uuserv.net.tw, 这之间仍是以 Internet SMTP标准来投递, 但对于 linux.uuserv.net.tw 如何进一步把信件转递给 uuserv.net.tw, 我们则无从得知, 这属于其 local 站内事务。 以上说法只是个概括情况, 详细情形会因为其它因素而有不同, 我们虚拟一个应用题来说明。

  以下应用题假设美国比尔克林顿先生 (president@whitehouse.gove) 发一封E-Mail 给敝人 (yuan@UUserv.Net.tw), 我们来分析这封信递送时可能的过程。 不过先提醒读者, 我们住的这个地球天灾人祸不断, 网络世界其实也不例外, 网络因任何理由中断服务是常见的。 Internet 上 E-Mail 如何在网络灾害发生时仍然可靠的把信件送达收信人呢? 以下笔者分别用三种情况来说明。

  * whitehouse.gov 成功的送信给 linux.uuserv.net.tw

  首先, 当比尔先生完成信件写作并寄出时, 不论他老兄是在 Windows、Mac 或 Unix 环境下读信, 这我们不管, 他这封信多半会透过 whitehouse.gov这部主机的 Mail 系统负责投递。

  whitehouse.gov 第一步就是询问 UUserv.Net.tw (大小写无关)的 IP地址, 它跟谁问呢? 当然是跟距离最近的某一部 DNS 。 这查询所得到的回应, 发现 UUserv.Net.tw 并没有一个对应的 IP, 它发现所有送往UUserv.Net.tw 这个地址的信件, 都经过一部转递主机 (Mail eXchanger)- linux.uuserv.net.tw, 与此同时它也得到 linux.uuserv.net.tw 的对应 IP 为 139.175.249.15, 之后就把信件投递给这部机器。

  这里我们中断下来, 来仿真看看由 DNS查到的数据究竟长得什么样子,我们可以在 Unix环境下以 nslookup 指令仿真查询 MX 记录:

$ nslookup -type=mx uuserv.net.tw
Server:  aladdin.iii.org.tw
Address:  140.92.1.50

Non-authoritative answer:
uuserv.net.tw   preference = 5, mail exchanger = linux.uuserv.net.tw
uuserv.net.tw   preference = 10, mail exchanger = tpts1.seed.net.tw
uuserv.net.tw   preference = 20, mail exchanger = aladdin.iii.org.tw

Authoritative answers can be found from:
uuserv.net.tw   nameserver = linux.uuserv.net.tw
linux.uuserv.net.tw     internet address = 139.175.249.15
tpts1.seed.net.tw       internet address = 139.175.1.10
aladdin.iii.org.tw      internet address = 140.92.1.50


  从上面资料我们可以得知提供 uuserv.net.tw 转递服务的其实不只一部Internet 主机, 而是三部, 这三部 Mail 主机的 IP 地址也都同时找到。

  回到正题。 假如 linux.uuserv.net.tw 成功收到信了, 他还必须进一步把信投递给 UUserv.Net.tw, 至于如何投递, 则依照其网络联机方式而定,可能是SMTP 也可能是 UUCP。

  我们实际寄一封信来看看。 读者留意下面 3、4 两行, 可以发现信件送出时先找到 uuserv.net.tw 的信件是由 linux.uuserv.net.tw 转递, 之后信件就递送给linux.uuserv.net.tw (139.175.249.15)。

$ mail -v -s "test MX service" yuan@UUserv.Net.tw
1 yuan@UUserv.Net.tw... Connecting to
2 uuserv.net.tw via ddn...
3 mail exchanger is linux.uuserv.net.tw
4 Trying 139.175.249.15...  connected.
5 220 h{T
6 >>> HELO whitehouse.gov
7 250 linux2.uuserv.net.tw Hello tpts1.seed.net.tw
8 >>> MAIL From:
9 250  ... Sender Okay
A >>> RCPT To:
B 250  ... Recipient Okay
C >>> DATA
D 354 Enter mail, end with "." on a line by itself
E >>> .
F 250 Mail accepted
  >>> QUIT
  221 linux2.uuserv.net.tw closing connection
  yuan@UUserv.Net.tw... Sent


  以上我们从编号 F 这一行可以看到, linux.uuserv.net.tw 已经成功把whitehouse.gov 寄给 uuserv.net.tw 的信件代收下来了。

  * linux.uuserv.net.tw Mail 服务中断

  可是假如因为网络中断或其它原因, linux.uuserv.net.tw 的 Mail 系统无法正常收信, 这时该怎么办? 简单, whitehouse.edu 会把给yuan@UUserv.Net.tw 的信投递给 tpts1.seed.net.tw 这部机器。 这就是怎么说呢?

  根据 DNS 的数据库记载, 提供 uuserv.net.tw 信件转递的一供有三部Mail 主机, linux.uuserv.net.tw 是其中第一部, 它也拥有最优先服务的权力, 它也有可能是唯一与 uuserv.net.tw 以直接联机的一部 Internet 主机(我们前面提过, MX 可以用在封闭的网络, 也可以在 Internet)。

  tpts1.seed.net.tw 排名次之, aladdin.iii.org.tw又次之。 关于这 一点,我们可以从刚刚执行 nslookup 指令的结果得知, 其中 preference 分别有5 10 20 就是代表优先级, 数字越小有越高的优先权。

uuserv.net.tw   preference = 10, mail exchanger = tpts1.seed.net.tw
uuserv.net.tw   preference = 20, mail exchanger = aladdin.iii.org.tw
uuserv.net.tw   preference = 5, mail exchanger = linux.uuserv.net.tw


  whitehouse.gov 把信送给 tpts1.seed.net.tw 这部机器之后,whitehouse.gov 于是就当作信件已经成功投递了 (这也是前面提到MailGateway会造成信件丢失的原因, 因为信件尚未投递给真正的收信人,whitehouse.gov 就已经不管)。 tpts1.seed.net.tw 把信收下来后, 就变成由它来负责投递这封信给 yuan@uuserv.net.tw

  由于 tpts1.seed.net.tw 也不认识 uuserv.net.tw, 它必须把信件投递给 linux.uuserv.net.tw, 可是网络明明又不通, 这时该怎么办呢? 简单,tpts1.seed.net.tw 会不断的尝试要把信投递给 linux.uuserv.net.tw, 也许它会每隔 15 分钟或 30 分钟尝试执行投递一次, 不断尝试, 直到几天后(究竟几天, 由系统自定, 内定可能三天) 若仍没有成功, 会把信退给whitehouse.gov, whitehouse.gov 系统再退信给比尔本人, 比尔就知道信没有送达。 至于以上提到的时间数据不同的系统会有不同的设定。 我在后面分别会介绍 Sendmail 及 Smail 如何来设定。

  可是假如故障发生一天之后 linux.uuserv.net.tw 对外线路恢复正常了,tpts1.seed.net.tw 就会把一天前 whitehouse.gov 交代下来的信, 投递给linux.uuserv.net.tw, linux.uuserv.net.tw 接着负责把信转给 UUserv.Net.tw。

  不论哪一种情况, 比尔 (president@whitehouse.gov) 应该都会知道他寄出去的信如何了, 信件不会石沈大海。 比方说, 假如 UUserv.Net.tw 收到了, 却察无 yuan 此人, 则会把信退回 president@whitehouse.gov, 并附上错误讯息。 假如 tpts1.seed.net.tw 一定时间内仍联络不到 linux.uuserv.net.tw,信件也会退给比尔。 假如UUserv.Net.tw 根本不存在, 则 whitehouse.gov 一开始就会立刻把信丢还给比尔, 命附上 unknown host 的错误讯息 (假如whitehouse.gov 的 Mail 系统不支持 BIND, 这时明明 uuserv.net.tw存在,unknown host 错误也会发生)。

  反过来从 yuan@UUserv.Net.tw的角度来看, 由于 DNS 指定 MX 转接服务,所以即使 UUserv.Net.tw 的 Mail系统当掉一整天无法收信, 通常别人寄来的信件是不会丢掉的, 因为, linux.uuserv.net.tw 、 tpts1.seed.net.tw 或aladdin.iii.org.tw 会帮忙暂时把信收起来。

  * whitehouse.gov 对外线路中断

  假如 whitehouse.gov 对外的线路因任何原因中断了, 这时信件不可能投递的出去, 比尔的这封信该如何被处理呢?

  假如 whitehouse.gov 的 Mail server设定正确的话, 这封信会被积存(queue) 在 whitehouse.gov 自己系统里面, 之后, 每隔几分钟尝试把信送给 linux.uuserv.net.tw 这部机器一次, 正常的话, 假如三天或五天后whitehouse.gov 对外联机仍然未通, whitehouse.gov 的 Mail 系统就会把信件退还给比尔。 同样的, 以上所提到的数据会依照系统设定之不同而有异。

  同样的, 假如 whitehouse.gov 对外线路通了, 这时 whitehouse.gov 会依序尝试投递给 linux.uuserv.net.tw、 tpts1.seed.net.tw 或 aladdin.iii.org.tw 之其中之一。

12.相关标准文件介绍及其取得方式

  以下文件若未经额外注明, 都可以用 FTP 在 ftp.edu.tw 的 /documents/Internet/rfc 目录下取得, 至于档名, 比方文件编号为 RFC 1725, 则档名为 rfc-1725.txt.gz。 另外 1994 年十月份的 HopeNet光盘月刊所附 CD片, 也附有 Internet RFC 文件, 但没有FTP 档案库上的资料齐全。

RFC 1730  PS   M. Crispin, "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
   4", 12/20/1994. (Pages=77) (Format=.txt)

RFC 1725  DS   J. Myers, M. Rose, "ost Office Protocol - Version 3",
           11/23/1994.  (Pages=18) (Format=.txt) (Obsoletes RFC1460)

RFC 0821  S     J. Postel, "Simple Mail Transfer Protocol", 08/01/1982.
           (Pages=58) (Format=.txt) (Obsoletes RFC0788) (STD 10)

RFC 0822  S     D. Crocker, "Standard for the format of ARPA Internet text
           messages", 08/13/1982. (Pages=47) (Format=.txt) (Obsoletes
           RFC0733) (STD 11) (Updated by RFC1327, RFC0987)

RFC 0974  S     C. Partridge, "Mail routing and the domain system", 01/01/1986.
           (Pages=7) (Format=.txt) (STD 14)

RFC 1522  DS   K. Moore, "MIME (Multipurpose Internet Mail Extensions) Part Two:
           Message Header Extensions for Non-ASCII Text", 09/23/1993.
           (Pages=10) (Format=.txt) (Obsoletes RFC1342)

RFC 1521  DS   N. Borenstein, N. Freed, "MIME  (Multipurpose Internet Mail
           Extensions) Part One:  Mechanisms for Specifying and Describing the
           Format of Internet Message Bodies", 09/23/1993. (Pages=81)
           (Format=.txt, .ps) (Obsoletes RFC1341) (Updated by RFC1590)


RFC 1590  I    J. Postel, "Media Type Registration Procedure", 03/02/1994.
           (Pages=7) (Format=.txt) (Updates RFC1521)

RFC 1591  I    J. Postel, "Domain Name System Structure and Delegation",
           03/03/1994.


13.结论

  本期单纯只介绍 Internet E-Mail的原理及观念, 由于篇幅考虑, 笔者暂时停在此处, 在往后两期, 笔者将介绍 Unix 还境 Mail Server的架设,我将分别深入介绍 Sendmail 及 Smail 的取得、 安装以及系统设定。

  最后, 笔者必须说明, 笔者不真正拥有「全方位」 Internet E-Mail之经验! 我没有吹牛 :-) 因此, 笔者竭诚欢迎其它网络先进来函指导, 也欢迎所有读者朋友来信指教, 您可以用 E-Mail 连过我 yuan@UUserv.Net.tw

来源:Linux Notes 曾瑞源  (作者为一独立网络顾问)
 楼主| 发表于 2002-8-4 12:37:15 | 显示全部楼层

thanks!genuy,我想用QMAIL做试验,

这么多名词解释呀,呵呵,我找时间在局域网上试试QMAIL,很多朋友说QMAIL要好,不知大家意见??
发表于 2002-8-4 16:57:16 | 显示全部楼层

强烈建议公开服务器版的下载地址

北南南北,老兄,3。0版本的服务器版本也可以呀,就做个镜象文件让大家下载下来试试,爽不爽嘛!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表