第五章 Internet邮政系统

在Internet信息资源中,电子邮政是使用最多的。实际上对许多人来 讲,一提起邮政就意味着使用Internet。

在本章,我们将详细介绍Internet电子邮政系统,并探讨在初学时必 须掌握的常识。首先让我们从基本观念和概念开始:提供Internet邮政服 务的程序是什么?有哪些技术词汇和术语?

在这里,通过一些使用电子邮政系统的索引和每个文件的专业资料说 明,来把所需理解的问题确定下来。在第六章,还将向你讲解怎样使用标 准的Unix邮政程序。那时,将给你一个收发文件操作说明。

Internet电子邮政系统基础

传送受理程序

Internet 邮政系统是最重要的 Internet 资源。 每天无数的文件在 Internet中传送。如你所知那样,许多文件是用户之间的个人消息。无论 如何,邮政系统是可输送各类信息的综合服务系统:像文献、印刷品、计 算机程序等。而唯一所需的是用ASCII字码(即可用键盘录入的数据) 存贮 数据。

在有些情况下,也可传送非文本资料,如图像或录音。在本章后面将 探讨该问题。

数以万计的人在使用Internet,其邮政系统可传送你可想像得到的各 类信息。该系统最有意义的用途之一,是让身处不同地方的人员在同一项 目中一起工作。目前就有遍布世界各地的人员各自协同工作。实际上,人 与人相距十万八千里而一起工作,是很平常的。

例如,写本书时,地处加州的作者,每一章节都分别送往奥地利和爱 尔兰的两位工作人员,让他们审查并评注该书。每章文字内容就是使用邮 政系统发送的。每位评审者在评审完后即发回。因为Internet是如此之迅 速和可靠,在一天内评审完整个章节已不足为奇。假如我们依靠传统邮政 局,整个过程将延迟数周。

完成更大规模的过程,这本身会影响Internet自身。这就要求有一个 新的规则、思路或一个新标准。在这种条件下,任何人都可参加全球范围 的讨论。

考虑这些,很自然地就会想知道,是什么把这一切都结合在一起的? 毕竟Internet连接了成千上万个不同的网络,每一个网络都有自己的计算 机网络和软件。怎样才能使这些不同的系统一起工作并交换邮件呢?

答案就是由称之为SMTP的系统使传送邮件标准化。SMTP,表示简易邮 件传送协议(SimpleMailTransferProtocol),它是TCP/IP 系列协议的一 部分。它解释邮件的格式和说明怎样处理投递的邮件。每一台Internet计 算机在运行邮政程序时,可自动地确保邮件以标准格式选址和传送。这个 程序称为传送受理程序(transport agent),它按照SMTP 协议工作并将你 的邮政联系向外界发送。

在大多数系统中,传送受理程序在“后台”中运行,随时对可能收到 的任何要求作出反应。在Unix系统术语中,这个程序称之为“守护神”, 即智能程序(daemon)(是的,完全可以这样称呼)。

每一个Unix系统都有各种隐放在“后台”的智能程序无声地为你服务。 从理论上讲,不论你的系统使用的是什么传送受理程序,只要它能用SMTP 收发邮政文件就行。大多数Unix系统使用一种叫“传送邮件(sendmail)” 的智能程序。

目前,是否认为有必要理解掌握工作系统的所有技术细节呢? 当然不 必。我们想让你欣赏的是邮政系统工作,因为网络上的每人至少都有一台 计算机,它以SMTP标准来运行传送受理程序以此收发邮件。在许多系统中 传送受理程序就是称之为“传递邮件(sendmail)”的智能程序,你至少要 知道它的名字和它能完成什么工作。

电子邮政系统接口(I/F)

用户邮件程序

做为一个用户,你不会直接与你系统中的传送受理程序发生联系;只 是在机器内部通过SMTP运行收发邮件,你使用的这种邮政程序叫作用户邮 件程序。正是这用户邮件程序使你与Internet邮政系统相互联系,使你能 读到信息文件,写作新文件,删除已阅读的文件等。

在Internet中有许多不同的用户邮件程序。在这部分,我们要了解最 常用的几种。首先从邮政程序开始,然后再讨论用户邮件程序,这在PC机 中也许已使用过。你所用于写作和阅读邮件的用户邮件程序取决于所使用 的系统。在一些系统中,只有一个邮政程序,而有些系统,可有多种选择 程序。

最广泛使用的用户邮件程序是Unix邮政程序。该程序来自Unix系统。 因此,该程序对于大多数Internet用户是非常有用和有效的。也许你的系 统中有更好的程序(稍后,我们将讨论),你可以优选使用。这很好,然而, 邮件是一种标准工具,是在每个Unix系统中都能见到的唯一用户邮件程序。

邮政程序的第一个版本是很原始的,仅能提供最基本的读写功能。几 年前,产生了功能强大的新邮政版本, 有两个程序的版本, 每个都是在 Unix 系统下运行的, BerkeleyUnix( 即 BSD , 由 BerkeleySoftwareDistribution编制)和SystemVUnix(由AT&T 的贝尔实验 室编制)。

BSD用户邮件程序称为mailx,SystemV用户邮件程序称为Mail。( 正如 所知,Unix系统下,需区分大小写字母,这样Mail和mail就是不同的程序。 )

目前,旧版本已基本不用。你会用mail指令,都会自 动地进入mailx或Mail。

Unix基础邮政程序

我们已讲过mail是标准Unix用户邮件程序所使用的程序来收发邮件的。 然而,另外的系统也有其它的用户邮件程序。如果其中一个有效,也许你 会选择它而不使用mail(邮件)。而且一些Unix系统有许多这样的程序,不 可能逐一进行讨论。然而让我们浏览一下应用最广泛的几个程序。最通用 的用户邮件程序之一叫Elm。Elm是一种全屏程序,它是最易掌握和使用的。 甚至在从未使用过电子邮政前,不使用任何说明,你就能使用Elm。 随着 逐渐熟练使用,你会发现Elm可提供远比单一邮政管理多得多的内容, 它 兼有所有优越性能。

另一个常用程序,甚至更易掌握,叫Pine。Pine使用一个简单的菜单 驱动接口,特别适用于初学者和临时用户。Pine对于那些一坐在计算机面 前,立刻开始使用邮政程序的无经验者是再好不过了。其菜单条目清楚易 懂,并可随时显示帮助信息。然而,当发现你自己要收发大量邮件,最好 使用另一用户邮件程序。虽然Pine是易学的,但其它程序功能更强、更合 理、更适于有经验的用户。

也许你会看见另一种用户邮件程序叫MH(文件操作者)。MH实际上是一 套相对简单,单一目标的程序。你可使用不同程序完成各种工作,而不必 死守一个程序来完成各种事情。

例如,在使用mail或Elm时,输入一个命令即可运行程序。 在该程序 指导下,你可完成你想做的每一件事。

用MH,对于每一工作,你要分别使用不同命令。如,查询有什么文件 等待你,用scan命令;显示文件,用show命令;答复文件,用repl命令; 写新文件,用comp命令等。

显而易见,该系统的缺陷在于:你必须牢记大量命令。然而MH的优势 也是明显的。你不必停止正在做的工作而使用邮政程序工作。随时输入一 个MH命令,就可完成一项单一工作。

比如说,你正好刚读完来自一位朋友的文件,文件中他询问你是否有 一份特殊文件的最新版本。为查询文件,你只需录入一个文件名,即可寻 找到文件。

如果正在使用mail或Elm,你必须停止程序运行,或至少使程序暂停, 以录入文件名。而使用MH,你即使没在邮政程序中工作,你仅简单录入文 件命令,就能查看邮件,然后又录入MH命令发送复函。

还有一种用户邮件程序叫Mush。该名称代表MailUser'sshell (邮政用户壳)。Mush可以两种不同途径灵活使用:mail(定向线接口),或 象Elm(即时使用全屏幕)。此外还有一种以Mush为基础的商业产品, 称作 Zmail。

目前为止,我们讲的所有用户邮件程序都是在Unix系统中工作。如果 你是X window用户(见第二章),可能会有一个或多个可使用的X 用户邮件 程序以获取图像用户接口的优势。如果使用的正是Sun工作站, 就可使用 称为Mailtool图像邮政程序。

在本节我们想讲解的最后一个用户邮件程序是Rmail。它是建立在有些 Emacs版本上的邮政程序。Emacs是一个建立在功能强大的文本编辑程序上 的完整工作环境。在Emacs环境中,你不仅能编辑文本, 还能编制扩展程 序,阅读Usenet(用户网)文章,操作Rmail,收发邮件。在本书中, 不必 进一步深入Emacs中,但要让你知道Rmail。如果你是Emacs用户, 你会 发现Rmail归入到Emacs环境中,确实使用方便。

基本术语

现在,对使用Internet邮政系统中常见的技术术语词汇进行讲解。 首先,要注意到,在看见单词“mail”时,它一定是指电子邮件,看 见单词“address”必是指一个Internet地址。在本书中, 几乎不提传统 的邮政局邮件。所以在Internet中的某些人询问“你的地址? ”你就给出 你的电子地址。

使用电子邮政后,你会认为传统邮件像蜗牛邮件一样滑稽。如,向“ 用户网(Usenet)”讨论组传送一篇文件,人们通常就会在文章后录入相应 的电子地址(信箱)。有时,你也会收到邮政地址的“蜗牛邮件”,这种称 呼表明邮政局邮件比电子邮件慢得多。

在你读完一个文件后,有几种途径可处理文件。首先可用删除它来放 弃文件。当在邮政程序中时,如果你改变主意,可使删除文件恢复,然而, 一旦退出程序,所有删除文件消失无遗。

如果文件需要回答,你可答复。邮政程序能让你非常容易地对具同一 的用户标识发来的原始文件进行回答。如果愿意,你甚至还可把原始文件 一块回复。

另一选择是保存文件。这就是说邮件内容可复制到一个文件中,只要 你愿意,就可长期保存。你也可选择“forward”方式转发一个文件。 邮 政程序将会复制这一文件并发往任何你想发往的用户。

大多数邮政程序是很容易转发邮件的,并且有些人也热衷于这样做。 一份发往同事的私人信件最后送到了其他人的邮箱里是不足为奇的。

在发送一个文件时,你一是要说明收件人的用户标识。同时,你可将 同一文件的副本送若干收件人。

同样你也能指定一个或多个用户传送接收一份文件。这里有两种传送 形式,即常规传送和隐性传送。通常,每个接收者可看到这份文件发给所 有收件人的名单,而隐性传送是其他人无法知道的秘密传送。

这有个例子,假如你与四个人工作,他们的用户是curly、larry、moe 和harley(听来象是有趣的工作地点,不是吗?)。你传给curly一份文件, 同时也向larry和moe发送副本,并向harley发送隐性副本。其结果是四人 都收到一份相同的文件。每个人都知道curly、larry和moe 收到了一份副 本。可是,curly、larry和moe却不知道harley同样也收到了一份副本。

当收到一份文件时,你并不知道其他人是否也收到了一份隐性文件。

也许你要问,传送这一副本时,说明几位收件人和说明单一接收人有 什么关系?例如,当你向curly、larry和moe分别发送一份文件时有什么不 同?或你向curly发送一份文件而同时向larry和moe传送同一副本又有什么 不同?

其回答是确实没有什么区别。然而,有时你也许想选择发送方式。例 如curly是老板,也许将其称为主要收件人更好, 而把副本抄报给其他两 位。

有时,你也许发现自己不断重复地向同一些人传送文件。在这种情况 下,你可建立“别名(alias)”,代表一组人的名称, 每次你向“别名” 传送文件时,即会自然地将文件传送给这组所有成员。

再比如,你设定一个executives “别名”代表三个名字, curly 、 larry和moe。一次向executives传送邮件是和分别向三个用户传送邮件是 一样的。当然,随着需求增加,你可改变甚至删除“别名”。怎样设定和 操作“别名”取决于你所使用的邮政程序。

一个类似的,但更正规的编排是“邮政用户名单(mailinglist)”,正 如其名所暗示那样,这是一张收发邮件的用户名列表。邮政用户表是相当 大,作为一种规定,它要由一些专业人员来管理。

在Internet中,确实有千万种、涉及不同领域的邮政用户名单。例如, 其中就有用于讨论可视艺术的邮政用户名单。为了被列入邮政用户表里, 要向管理人员发送一份邮件。有时,文件——通常是某些类型的文章—— 是在邮政用户表上发送到每个人,我们将在第十八章详细讨论邮政用户名 单。

自动转发邮件

如果你使用的是Unix系统,有一个途径可使你的所有邮件自动地发送 到另一个地址。例如,若你在不同的计算机上有几个邮政户头,你会很方 便地在一台计算机上查看所有你的邮政帐目。类似地,若你到达某地,并 开了一个旅行计算机户头,就可以临时地发送你的邮件到该户头上。

为了自动地发送邮件,需在你的目录上建立一个名为“· forward”( 转发)的文件,其符号(·)是文件名的一部分。在这个文件中, 录入一个 单行,其中含有你想转发邮件的地址。例如,你可以使用:

harley@fuzzball.ucsb.edu

从现在开始,所有由“·forward ”文件发来的邮件将更改到指定地 址的计算机上。任何时侯调开“·forward”文件,即可停止转发。

邮件提示和准则

在开始讨论收发邮件实质之前,先让我们讲一点重要指示。

如果你从未用过电子邮件,你要注意一下它与常规邮政或电话有什么 不同。

电子邮政在Internet上非常容易将一个信件发往任何地方,以至于人 们常忘记这信件的保留价值。作为一个通则,不要发送你一年内不会看的 文件。

当一些人做些使你生气的事时——给你发送一个无礼文件——你可以 忍住脾气传回一些侮辱和讥讽文件加以痛斥。你将文件保存好,一旦你送 出了一份文件,是不能返回的。 (当然,我们认为没人听从这个劝告,但不等于说我们没警告过你。)

非常重要的是你不能认定邮件的隐私范围。虽然你发送了你的私人文 件,但收件人是非常容易地发送一个副本到其他人手中,而你还被蒙在鼓 里。同样,你也不能确定你收到的信件是纯私人性的,其他人可能还收到 一份隐性副本。当涉 及到私人问题时,象爱情信,你会发现它是多么浪漫,已被安全地仿效传 统习惯送出去了。

你可能遇见的另一种难以理解的事是字符量被更改。一次,我们一晚 上收到了大量邮件,我们的邮政信箱(可保存未读邮件的系统)增涨得相当 大。当阅读邮件时,我们注意到其中一份文件是来自根目录(root) , 在 Unix系统中,它是系统管理人员的用户标识。这文件告诉我们邮件占据了 大量空间,务必删除掉。

作为友好,我们马上发送了一份礼貌的回复,说明我们将立刻注意这 个问题。(尊重系统管理人员。)后来,我们发现了原始字符是由一个程序 自动产生的。该程序每晚利用邮政信箱寻找用户。

设身处地,系统管理人员会怎么样,他收到一份我们发出的那份文件, 文件中我们保证解决他“提出的问题”。他不再要求我们做任何事,他只 要很简单地把显示数据打开,他就知道我们什么也没有解决。天真使我们 的处境窘迫。

当你在使用计算机时,还会发生另一种情况,其中你可能发现显示数 据表示,计算机没有按你所期望的那样工作。之后,当再次启动计算机, 可能收到一份文件告知你部分数据已自动按所期望的那样工作。之后,当 再次运行计算机,可能收到一份文件告知你部分数据已自动保存下来。

一个普通例子是Unix的“vi”文本编辑程序。如果你正使用“vi”编 辑一份文件,计算机运作,稍后,你将收到一份格式文件。该文件告知文 件已保存下来,同时给一个用于改变数据的说明。

我们希望你注意的最后一点是,电子邮件与电话或与人讲话有大量相 同之处:快速、简便。在联系中,使用电子邮政在某种意义上有种失落感, 损失是你的音容笑貌,和你的个性影响。都失去了,没有得到交流和展现。

因此,你将发现轻而易举地偶尔羞辱一些人,或开些幽默的玩 笑,可能导致反击。由于该原因,有个常规,即无论何时你写某些可能导 致误解的笑话时,你不要忘了在话后加上一个“smiley(微笑)”。

“微笑”是一张很小的笑脸图像,由标点符画出。例如::-) 例如说一位朋友刚向你发来一份文件,详细告诉他昨晚在Unix单身俱 乐部怎样遇见梦中情人的。如果在私下他非要告诉你这个故事,你不必冒 犯(眨眼、碰肘),给一个有趣标识符就行了。注意,用邮件,容易伤害无 防范的人。

因而想要以幽默形式答复,最好加上“微笑”。
oh,yes,I Know Who You mean……
She'll go home with anyone who has a real IBM computer.
哦,是的,我知道你指谁……
只要谁有一台真正的IBM计算机,她就和谁回家。
这就确保你的朋友能注意到你的内容中的微妙冷嘲。
在第十章我们对“微笑”再进一步讨论。

邮件信头编写识别

一个Internet上的电子邮件应该怎样编写,才能被识别、才能发送出 去呢?标准格式的邮件是由两部分组成:“信头”和“主体”。 信头包括 在文件开

始处的信息行。主体实际上是你所表达的信件内容。

图5—1是一个我们将讨论的样本文件。信头格式在你们操作系统中也 许有变动,但主要内容不变。 


    Fromrick@tsi.com WedMar3114:47:021993(From+地址+时间)

    Received:fromhub.ucsb.edu by engineering.ucsb.edu

    id AA15594toharley:Wed,31Mar9313:19:25PST

    Received:from fuzzball(fuzzball.ucsb.edu)byhub.ucsb.edu;

    id AA11868

    Sendmail4.1/UCSB2.0sun

    Wed.31Mar9313:23:58PST for harley@cs.ucsb.edu

    Received:by FUZZBALL(5.57/UCSB—V2)

    id AA07200:Wed,31Mar9313:17:40PST

    Received:fromtsi.combyucsd.edu;id AA03169

    send mail 5.67/UCSD-2.2 sunvia SMTP

    Wed.31 Mar 9313:23:520800 for harley@fuzzball.ucsb.edu

    Received:bysdcc12.UCSD.EDU(4.1/UCSDGENERIC.3)

    id AA25582 to harley@fuzzball.ucsb.edu;

    Wed.31 Mar 9313:23:51PST

    Date:Wed.31 Mar 9313:23:51PST

    From:rick@tsi.com(RickStout)

    MessageId:<9303311840.aa06711@tsi>

    X.Mailer:MailUser's Shell(7.1.27/11/90)

    To:harley@fuzball.ucsb.edu

    Subject:this is the subject

    Cc:ad die@nipper.com kim@nipper.com

    Status:Ro

    Harley:I have setup  an  appoint  ment  for  next  Thursday afternoon.

    Please let me know if you can attend.

    ...Rick

    来源:rick@tsi.com1993年3月31日星期三14点47分2秒

    接收:from hub.ucsb.edu by engineering.ucsb.edu

    id AA15594 to harley:93年3月31日星期三13:19:25PST

    接收:from fuzzball(fuzzball.ucsb.edu)by hub.ucsb.edu;

    id AA11868

    传送邮件4.1/UCSB-2.0sun

    93年3月31日星期三13:23:58PST到harley@cs.ucsb.edu

    接收:由fuzzball(5.57/UCSB-v2)

    id AA07200;93年3月31日星期三,时间13:17:40PST

    接收:来自tsi.com by ucsd.edu;idAA03169

    传送邮件通过SMTP5.67/UCSD-2.2sun

    93年3月31日星期三时间13:25:520800到harley@fuzzball.ucsb.edu

    接收:由sdcc12.UCSD.EDU(4.1/UCSDGENERIC.3)

    发送id AA25582至harley@fuzzball.ucsb.edu;

    93年3月31日星期三;13:23:51PST

    日期:93年3月31日星期三13:23:51PST

    来源:rick@tsi.com(Rick Stout)

    文件标识符:<9303311840.aa06711@tsi>

    X—邮政者:Mail User's Shell(7.1.27/11/90)

    至:harley@fuzzball.ucsb.edu

    标题:具体题目

    副本(Cc):addie@nipper.com kim@nipper.com

    状态:RO

    Harley:在下星期四下午,我安排了一次会见,请告知我你是否参加。

    Rick

    图5—1样本邮件

以上例子说明,在信头中的第一行总是单词“From”,该行表明发信 人的地址。在我们这个例子中,文件是从rick@tsi.com发来的。

其它行即不必以同样的顺序显示。这取决于收发邮件系统是怎 样构成的,也取决于在你特别的邮件程序设置的是什么选择。至少,在开 头写明“From”行,“(Date)日期”行和“(Subject)标题”行。

在我们的例子中,在最初的“From”行后有十四行包括五条Received 说明的技术信息。这些字行表明该文件所取的路径、时间、日期和操作过 程中每一步应使用什么程序。你可能常忽略这些字行。然而,如果稍稍注 意一下,你能看到一些有趣的信息。例如,按此路径,文件由两种不同发 送邮件程序(sendmail)版本支持( 较早我们讲过的智能程序起传送代理作 用)。

现在让我们看一下第四个接收说明。其中有这行字:

93年3月31日星期三13:23:52:-0800 for harley@fuzzball.ucsb.edu 这是在这特别位置收到该文件的时间和日期。注意所给的时间是 13 :23:52。这是因为Internet使用的是二十四小时制时间。这个时间代表的 是下午1:23(加52秒)。

同样还要注意时间后的记号——0800。这是一个你应该知道的重要规 则。

自Interent遍及全球以来,它的用户处在许多不同的时间带。通常知 道一个文件发送的时间是非常重要的,然而该时间易与当地时间混淆。例 如,你是在奥地利的维也纳收到一份来自加州某人的文件。在文件上的时 间是13:23:52。你怎样知道这是加州时间还是奥地利时间?

在许多情形下都会产生同样的问题。因此作为一种解决办法,Internet 把格林威治平均时间作为标准时,有时你会看到GMT表示法。 也许你知道 它也表示为世界时或UT(这是较新的正规时间表示法)。无论你看见什么, 只要记住,不管是什么时间,都是需要有一个标准参考时间的,就用GMT。

上例举的时间是当地时间,而它较GMT时间少八个小时, 换句话讲, 发送文件是在当地时间下午1:23,也是GMT的晚上9:23。

除了格林威治平均时(GMT)或世界时(UT)外, 在北美还将发现有一些 其它常用字母缩写时间,这些名字涉及到北美当地时间带,在表5—1中例 出。

现在,回到我们邮件样本中的信头上, 可见到下一行字是由单词“ (Date)日期”开始。这表示文件发送的时间和日期。


    缩写字母时间带

    UT世界时间(即也是GMT)

    GMT格林威治平均时间

    EST东部标准时间

    EDT东部白昼时间

    CST中部标准时间

    CDT中部白昼时间

    MST山区标准时间

    MDT山区白昼时间

    PST太平洋标准时间

    PDT太平洋白昼时间

    表5—1时间带名称总汇

再下一行又是另一个“来源(From)”行。这表示有关发送文件的用户 标识之外的信息。在这种情况下,我们可知该用户标识在RickStout 下注 册登记的。 这就是讲或是Rick或是其他人用这个户头发送文件的。

再下一行就是“文电标识(Message-id)”行,它表示该文件的唯一的 标识标签。可忽略不管。

又下一行是“X—邮件者(X—Mailer)”行。它表明发送者把程序作为 他的用户邮政程序。我们就明白他正用“邮政用户壳(Mush)”。同样,你 可忽略不管。

在“(To)发往”行表明文件要发往的地址。当然,这是你的地址。假 如该文件同样也发往到其他人那里,在这行也会显示他们的地址。

又下一行是“(Subject)标题”行。像你将在第六章看到的那样, 在 每次编写文件时,你要指示标题——仅是短少的描述。在信头中,不论你 指定的什么内容都是在“标题”行中,当阅读文件时,你的邮政程序将显 示所有文件的标题。因此,你可一目了然地知道哪一份文件正等待你阅读。 当你给某人发送一份邮件时,他非常忙而没注意收到任何文件,你就 应该使你的标题有趣,这样,他才会及时阅读。许多繁忙的人对看来不重 要的邮件是不予理睬的。

如标题为“明天你的办公室即将消失”远比“基础设施改造即将来临” 容易引起人的注意。

在标题行后,是“(Cc)复制”行。这表明用户标识收到的是一份副本。 在这种情况下,有两种这样的用户标识:addie@nipper.com和kim@nipper. com。“(Cc)复制”是传统的“复制传送(copysentto)”的缩写(早期在打 字机时代“Cc ”代表“副本(carboncopy)”)。若无副本,该行即省略掉。

虽然副本显示出来,但隐性文件则无显示。毕竟它们是秘密的。所以 记住,在你不认识的人中,也许同样收到一份副本。

在我们的样本例子中,最后一行字是状态行。是由邮件阅读程序插入 的。不是所有程序都有该行。你可能会遇见两种状态。“R ”状态表示你 首次阅读该文件。“RO”状态(如本例)表示该文件曾经阅读,是旧文件。

邮政程序常显示一个“状态”行。可是,几乎没有人知道不同的设计 表示什么,这一般查不到。

这里稍稍教你一个,轻而易举挣钱的办法。去一个有许多Internet人 群聚集的酒吧。以你知道而别人不知的邮件信头字行来打赌。首先,故意 提一些像“来源”、“标题”、“日期”这些易懂的字行来赌,并输掉。

最后,要求赌最后一次,并下大注。现在你可以赢回一切的态度问: “RO状态表示什么?”这样,保管你会真的赢钱。

文本与二进制数据区别

在下一部分,我们将讨论你怎样使用Internet邮政系统来收发所有类 型资料或数据:例如图像、录音等文件。在讨论这个话题前,我们应该了 解一下计算机工作人员对不同数据是怎样分类的。“(data)数据”是指任 何类型可被计算机储存和提取的信息。所以有必要把数据分作为两种基本 类型:文本或二进制数据。

文本由普通字符组成:字母、数字、标点等。同样也由象空格(space) 和表格(tab)特殊符组成。 你也许在计算机上录入并传送给朋友的一份文 件就是文本样本。在本章,所见一切数据资料均为文本。

一份会有这类数据的文件称为文本文件。这种文件也可称为“ ASCII 文件”(该名来自ASCII码)。这是一种说明, 它规定了各种不同的符号如 何转化为计算机数据。ASCII代表“美国信息交换标准码”。 对该问题讨 论到此为止。

一个较为复杂文本的数据都是“二进制”数据,一份二进制数据样本 是含图片的文件。像这种文件不含字符。当然,它包含表示许多组成图像 小点的信息。含有二进制数据的文件称为“二进制文件”。

“二进制”的名字是怎样而来的? 设想你在计算机屏幕上显示一幅图 像。该图像由许多微点组成。就该例而言,可以认为每个微点不是黑色的 就是白色的。

你也许想知道这幅图像是怎样在文件中贮存的? 进而是否有可能传送 这样的文件到朋友家,在他们计算机上可显示同样的图像吗?

二进制文件贮存图像完全不像照像册保存照片那样,它不含实际的图 像。二进制文件贮存再造图像的数据。它就是这样工作的。

每一独立点被写成“0”或“1”的数值。在我们的例子中一个“0 ” 可能表示一个白点;一个“1”可能表示一个黑点。换句话讲, 一个含有 图像的文件实际上就是由所有大长串“0”和“1”组成。显示图像的程序 必须能识别这类数据,这样才能在你屏幕上重现图像。

就计算机科学术语而言,一个元素必须含有这两个数值的一个——即 “0”或“1”——这个元素称为“bit”(二进制数的), 它是“二进制” 的缩写。就专业术语而言,可以这样讲,我们的文件含有大量“bit ”, 所有这样“bit”都是“0”或“1”一个数值。每个“bit”都代表一个黑 点或白点。

在本段中,单词“二进制(binary)”表示只用两个不同的数值。用计 算机术语讲,这种数据不含任何符号,并且可由排列有序的“bit ”所代 表,称之为“二进制数据(binarydata)”。

当然,我们的例子是在普通人水平上简化了。实际上计算机专家认识 许多不同类型的“bit”。因此,也就有许多不同类型的二进制数据。 例 如,对于贮存彩色图片,就需要用不同的“0's”和“1's”。对于贮存录 音,又需用另一种“0”或“1”的字码排列方法。

重要的一点是对于使用文本数据工作的程序是相对简单的。用二进制 数据,每一个“bit”都是重要的,操作的数据变得更复杂。

所有的Internet用户邮件程序(邮政程序)都能收发文本文件,该文件 可通过键盘录入并以字符在屏幕上显示。可是许多邮政程序不能操作二进 制数据。在下一部分讨论这些使用特别协议的东西。

当一台计算机向另一台计算机传送数据时,时常需要知道你操作的是 文本数据还是二进制数据。作为一种常规,普通字符数据为文本,其它的 都是二进制数据,可是你有时会上当。

显而易见,一个保存图像或录音的文件是二进制文件,它们的信息是 不能用普通字符来代表的。可能你不知道的是许多常用计算机工具——像 文字处理系统和扩展程序——同样也是以二进制文件贮存数据。虽然在屏 幕上,这些信息看起来象字符,但程序在文件中贮存数据是以非文字符的 代码贮存的。例如,文字操作系统用这样的代码表示斜体字或粗体黑字。 因此像文字处理文件或扩展程序这样的文件是以一种特殊格式化方式被贮 存并分解为二进制文件。

如何使用MIME传送二进制数据

下面,将讲解一下二进制文件,它不属简单的文本数据。有一种使用 Internet邮政系统传送这类文件的方法。然而,它只能在能操作二进 制数据的邮政程序上时才能工作。

在第二章,我们曾讲解过Internet使用一个大而广的协议族来确保所 有不同类型的计算机和程序一起工作。每一个协议都有一套规则和规定以 指导应该怎样做。例如,SMTP(简易邮政传送协议)描述怎样传送邮件。使 用SMTP,Internet主机可收发文本的信件。

为了使人们能够发送二进制数据,另一个名叫MIME的协议出台了。该 名表示“多功能 Internet 邮政扩展程序 (MultipurposeInternetMailExtensions)”。使用MIME的一个系统可包含 二进制数据及普通文件的传递。所有的内容将一道传送到目的地计算机。 在另一端,MIME系统使其二进制数据有效地接收下来。当然,一切操作都 是自动的,故你不必注意其过程的任何细节。

为了收发二进制数据,你必须具有用来支持MIME的一个用户邮件程序 (邮政程序)。许多邮政程序不能使用MIME。然而MIME是非常重要的,你会 发现较新的邮政程序现代版本确实支持它。

发送二进制数据的方法是将其贮存到含有常规文本文件的文件中。即 你把它放入(attach)你的信息文件中。如果你的邮政程序支持MIME,当你 写作文件时,它就具备再造这种放入的能力,换句话,你所需做的一切就 是指示你想放入的二进制文件的名称。在本段中,包括的数据常是指“丰 富文本(richtext)”,即该数据较普通文本的内涵更“丰富”。

正如你所想的一样,当收到一份二进制文件,如果 你的邮件程序支持MIME,该邮政程序会告知你该文件含有一份附件。在 阅读该文件时,你的程序将附件分出,并以一份文件存贮起来。如果邮政 程序不支持MIME,你也许只能看见文件的一部分二进制数据,这是毫无意 义的。

非常重要的一点要知道,发送方和接收方不一定用相同的邮政程序。 而所须的是双方程序都要支持MIME。

如果使用的计算机系统能让你记录一个声音符并把它贮存在文件中, 当你再提取该文件时,就会听到你的声音。

为了向朋友发送一个声音记录,首先记录文件并将其存入二进制文件 中。然后,发送文件到朋友处,将二进制文件放入文件中。当你朋友收到 该文件时,他将附件存入自己的文件中。这样,他就可用自己的计算机调 出文件并听到你的声音。

如果你从未使用或接触过MIME,还有另一种方法通过邮政系统来发送 一份二进制文件。可使用一个名为“uuencode”的程序,把二进制数据转 换成文本。然后可将其文件作为普通文件传送。在另一接收端接收者可取 得该文本,并用称之为“uudecode”的程序,将其转成原来的二进制格式。 在许多Internet用户中,“uuencode”和“uudecode”都是很有用的。