Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

全方位电子邮件服务

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  额外一提, 常有朋友问说, 如何把信送到 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 这部机器。 这就是怎么说呢?

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:雾里看花,探究LINUX版本   下一篇:LINUX目录树上不求人

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号