U n i x系统上具有电子邮件程序,可以用来发送和接收信件。通过它,你可以发信件到本
地系统上的任何用户、另一个与你网络连接的系统上或到I n t e r n e t上的任何人。在你的系统上,
每个用户有一个地址,该地址同他的登录名相同。要发信件到另一个用户,你仅需要知道此
用户的登录名。对于其他想发信件到你地址的用户,他们需要知道你的地址,也就是你的登
录名。如果需要发信件到其他系统的用户,你需要知道他们的网络地址。它通常由用户登录
名、系统的名字和系统的位置组成。假如知道用户的地址,无论用户在那里,你都可以发信
件到此用户。
在U n i x系统中,使用电子邮件程序,你可以发送和接收信件。在大多数系统中,有几个
通用的邮件程序可以用。尽管它们从事同样的接收和发送信件的基本任务,但却有不同的接
口。根据所使用的邮件程序,你可以用不同的方式接收和发送信件。本书讲述四种不同的邮
件程序: m a i l x、E l m、M H、P i n e。每一种有不同类型的接口。m a i l x使用一个简单命令行接口,
提供自己的s h e l l操作。大部分U n i x系统使用它,它被作为一个标准。E l m有一个全屏幕接口,
并利用单键命令,如同Vi编辑器中的命令。M H定义了一个U n i x命令集,在用户的s h e l l中可以
直接发送和接收信件,而不用在特殊邮件程序中操作。Pine 同样使用一个全屏幕接口,而且
集成了如新闻阅读器那样的功能。
假如二进制文件当作文本文件编码,就可以通过U n i x电子邮件发送二进制文件,然后,
接收到的信件可以被解码为二进制文件。此外,通过U n i x应用程序write 和t a l k,可以在本地
系统上的用户之间接收和发送实时信件。它们不是邮件程序,它们在用户之间直接连接,如
同收音机和电话一样。
本章讨论网络地址、使用m a i l x进行发送和接收信件的基本电子邮件操作、发送二进制文
件的方法、在登录的用户之间实时通信的使用工具。在下面章节里,将深入地讨论不同的电
子邮件程序。
1.1 用户网络地址
在U n i x系统中,用户有一个自己的电子邮件地址。要发信件到另一个用户,需要使用那
个用户的邮件地址。当前,大部分用户使用I n t e r n e t地址连接到网络,每一个用户的邮件地址
由用户名和它们的系统I n t e r n e t地址组成。对于在v i o l e t . b e r k e l e y. e d u系统上的j u s t i n用户,他的
地址将是j u s t i n @ v i o l e t . b e r k e l e y. e d u。U N I X支持地址替换方法。在相同系统上的用户之间,只
需要使用对方的用户名(登录名)做地址。在同一个系统的其他用户要向用户j u s t i n发送信件时,
仅需要使用j u s t i n做地址。然而,当发信件到其他系统的用户时,你不仅需要知道他们的用户
名,而且还要知道他们系统的地址。U n i x同样支持使用U U C P表达地址的较老方法。它通常用
第一部分电子邮件
于大多数早期的网络中,在这种网络上,通过网络连接或拨号m o d e m连接,信件从一个系统
传送到另一个系统。
对于不同系统上需要彼此通信的用户,他们的系统需要连接到一个网络上。这些系统间
接地彼此通过网络相连,一个系统被连到其他系统,此系统又连到另一个系统,依此类推。
你可以通过中间连接的系统发送信件到达一个网络的远端。例如,如果v i o l e t系统连到了s t a n
系统,它又连到了b e l l系统,那么通过s t a n,在v i o l e t系统的用户可以到达b e l l系统的用户。信
件作为批量处理的一部分,从一个系统发送到另一个系统,到达它们的目标系统。
网络上的地址要求系统地址独一无二地被标识。每一个地址有自己的名字,还有用于说
明系统位置的名字或系统拥有者的名字。然后你可以使用这样一个完全的网络地址,发邮件
到全球网络上的任何一个系统。在I n t e r n e t上,你可以把信件发送到世界上的任何系统。
有两种不同的寻址方式: 域和路径。域寻址方式来源于A r p a n e t,就是现在的I n t e r n e t前身。
域寻址方式广泛地应用于I n t e r n e t。对于Unix System V,AT & T开发了另一个网络通信包,称
为Unix-to-Unix 通信协议( U U C P ,这种U U C P网络通常使用路径寻址方式。尽管域寻址方式
已成为I n t e r n e t和I n t r a n e t的标准寻址方式,但这两种寻址方式可以混合。
I n t e r n e t域寻址方式使用每个系统独一无二的地址,处理通过网络的信件。路径寻址方式,
说明在你和你想去连接的系统之间的所有中间系统。这使得路径地址比域地址复杂得多。在
表1 - 1中说明了这两种寻址方式。
表1-1 网络邮件地址:域和路径
地址格式作用
l o g i n - n a m e @ s y s t e m . d o m a i n 域邮件地址( I n t e r n e t  ,如:
c h i r s @ v i o l e t . r o s e . e d u
s y s t e m ! l o g i n - n a m e 路径邮件地址,用在System V(UUCP)中,如:
r o s e ! v i o l e t ! j u s t i n
s y s t e m \ ! l o g i n - n a m e 路径邮件地址用在C - S h e l l ( U U C P 中。如:
r o s e \ ! v i o l e t \ ! j u s t i n
1.1.1 Internet域寻址方式
域寻址方式的设计目的,是为了简化另一个系统上某个用户的定位。域寻址方式赋予系
统一个域地址,它给系统一个独一无二的地址。一旦用户指定了这个独一无二的地址,网络
就可以跟踪到。
域名地址由标识系统的主机名、标识网络的域名和标识网络类型的扩展名组成。每一个
部分由点号分开。下面是域名地址的语法格式:
主机名.域名.扩展名
在特定系统上的用户登录名,加上域地址就形成完全的I n t e r n e t邮件地址,其格式如下:
登录名@主机名.域名.扩展名
要发信件到v i o l e t . b e r k e l e y. e d u系统上的j u s t i n,只要按如下形式给出地址即可: j u s t i n
@ v i o l e t . b e r k e l e y. e d u。在下面例子给出的域名地址中,主机为v i o l e t,网络为b e r k e l e y,它
的类型为教育机构,因此扩展名为e d u:
$ mailx justin@violet.berkeley.edu < mydata
2 第一部分电子邮件
下载
1.1.2 UUCP路径寻址方式
路径寻址方式仅使用系统地址,不用域地址。系统地址放在用户名前,用感叹号分开。
下面是路径寻址的语法表示:
s y s t e m ! l o g i n - n a m e
在下一个例子里,通过m a i l x发信件到一个名为v i o l e t的U n i x系统上的用户j u s t i n:
$ mailx violet!justin < mydata
在C - s h e l l里,路径地址寻址方式要求一个反斜杠放在感叹号的前面。在C - s h e l l中感叹号
本身代表历史( h i s t o r y)命令。反斜杠将转义感叹号为感叹号字符,而不是作为h i s t o r y命令。
下面是C - s h e l l路径地址的语法格式,以及C - s h e l l路径用在m a i l x命令中的例子:
s y s t e m \ ! l o g i n - n a m e
% mailx violet\!justin < mydata
在使用路径寻址方式表示的网络中,在另一个网络中的用户地址,由你到达该用户所经
历的中间系统名组成。每一个中间地址按地址顺序写在用户系统的前面,相互用感叹号分开。
假如你是在v i o l e t,而你想发信件到b e l l系统的c h r i s,那么需要说明信件所经过的中间系统。
对于中间系统为b e l l的地址将是s t a n ! b e l l ! c h r i s。如果要发信件到r o s e系统的d y l a n,你要经历三
个中间系统,就需要在地址中说明三个中间系统。在下面这个列子中,信件通过中间系统到
达最终目的地。在第一个命令中,信件发到s t a n系统,然后发到b e l l系统,chris 在此系统上。
在第二个命令中,信件首先被发到l i l a c,然后传到s f,再传到r o s e系统上的d y l a n:
$ Mailx stan!bell!chris < mydata
$ Mailx lilac!sf!rose!dylan < mydata
1.2 发送和接收邮件
要发送和接收电子邮件,你可以使用邮件程序,如: mailx 或E l m。本章描述发送和接收
信件的基本操作。采用m a i l x,是因为m a i l x已经成为了大多数U n i x系统的标准工具。
要发送信件,键入mailx 命令,后跟接收信件用户的地址。在按回车后,出现提示,让你
输入主题。可以键入一个信件描述(一个或多个词),然后按回车,进入输入模式,在此键入信
件内容,按回车键换新行,完成后,按C t r l - d,即可以结束编辑,并发送信件。在键入C t r l - d
后你将看到屏幕显示字符E O T (结束符)。下面的例子中,用户发信件到地址为dylan 的用户,
信件主题为G a m e。在键入信件文本后,用户按C t r l - d。
发送给用户的信件被放入用户的邮箱里,一直到用户检索它们为止。若检索信件,可以
使用m a i l x命令,此时不跟地址,仅输入m a i l x命令本身。它可以启动m a i l x界面,显示接收信
件的头部摘要列表。信件头部摘要由一些字段组成,包括信件状态、信件序号、日期、大小
和信件主题。信件的状态由一个大写字符如N 或U标示。字符N表示一个新信件,字符U 表
示以前未读的信件。信件序号用于在m a i l x命令里代表信件,它在信件状态字段的后面。
第1章电子邮件概述3
下载
在邮件提示符下,简单地键入一个信件序号,该序号所代表的信件将一屏一屏地显示,按
空格键或回车键到下一屏。例如,在邮件提示符下,如果你键入数字3,就显示第一封信件。
在邮件提示符下,键入q 退出mailx 。被保存的信件自动存入你起始( h o m e)目录中一
个名为m b o x的文件中。可以用mailx 加-F 选项重新显示它们。
$ mailx-F mbox
1.3 收到邮件的通知
当信件被接收时,它们被放在一个文件里,该文件的操作就像邮箱一样,每一个用户由
他自己的邮箱去保存等待的信件,通常情况下,一个信件到达后不会自动通知你。然而,可
以采用f r o m和b i ff实用工具,在有信件到达时通知你。
f r o m程序列出你接收的、等待去读的信件。每一项显示发件人的地址和信件接收的时间。
要使用f r o m,键入命令from ,并按回车键。
当新信件接收到后, b i ff程序立即通知你。因此,当你希望一个信件到达后,马上得到通
知的话,它是很有帮助的。使用b i ff命令带上y参数,即“ b i ff y”,就可以打开b i ff。要关闭它,
键入“b i ff n”。如果使用无任何参数的b i ff,就将显示b i ff是打开或关闭的信息。无论信件何时
到达, b i ff都将显示一个信件通知,不管你此刻在做什么。如果你正在进行编辑任务, b i ff就
中断编辑任务,在屏幕上显示信件通知。下一个例子,用户首先设置b i ff 打开。然后,b i ff通
知用户信件已被接收。接下来,用户检查是否b i ff 仍然是打开的。
4 第一部分电子邮件
下载
如果你不想被中断,可以使用“ mesg n”命令阻止任何信件显示在屏幕上。“Mesg n”将
不仅停止任何write 和talk 信件,它同样也停止b i ff通知信件的到达。
1.4 自动接收邮件
如果你在休假,在一定时间里就不能登录并阅读邮件。那么,可以让发送到的邮件自动
保存在你的邮箱里,并回复发件人,告知你不在。vacation 命令用来完成这些操作,读并保
存你的邮件,发送v a c a t i o n信件给发件人。接收到的信件放置在你起始目录的. m a i l f i l e文件里,
发件人日志保存在. m a i l l o g文件里,标准回答信件在系统/ u s r / l i b / m a i l / s t d _ v a c _ m s g文件里。
v a c a t i o n命令有几个选项,如表1 - 2所示。- m选项用来指定你想保存信件的特殊邮箱,可
以简单地存取此文件,列出所有你不在时所收到的信件。- M选项用于撰写你自己的休假信件,
缺省时只告知你在休假。- M选项可以用文本文件作为参数,可以用编辑器建立一个文件,组
成你的信件。下面的例子,名为v a c p l a n s的文件被用于在休假期间回答信件。任何接收到的信
件被存入名为v a c m s g s的文件里:
$ vacation -M vacplans -m vacmsgs
键入下列命令,就可以使休假功能无效:
$ mail -F ""
表1-2 vacation选项
选项作用
- d 增加日期到日志文件
-F 用户如果邮件不能发到邮箱文件里;就转发邮件到指定用户
-l 文件名保存发件人文件名到指定文件(缺省为$ H O M E / . m a i l l o g 
-m 邮箱文件名保存接收的文件到指定文件(缺省为$ H O M E / . m a i l f i l e 
-M 信件文件名使用指定的信件文件作为假期自动回答文件(缺省为/ u s r / l i b / m a i l / s t d _
v a c _ m s g 
1.5 二进制邮件和档案文件
通过电子邮件连接发送的信件可以看做文本信件,信件由一系列字符组成。二进制文件,
例如被编译的程序,就不能直接通过邮件程序发送。如果直接发送二进制文件,它们到达后
将不可用,对于归档和压缩文件也是如此。
第1章电子邮件概述5
下载
使用像t a r这样的归档程序归档的一个文件集合、或一个用z i p压缩的文件,就不能直接用
电子邮件发送。但将二进制、档案、压缩文件编码为与字符文本相当的文件,就可以用电子
邮件发送。u u e n c o d e程序可以将一个二进制文件转换为与字符文本相当的文件。可以用m a i l x
或E l m发送被编码成字符文件的二进制数据;然后,接收到此编码文件的用户,可以使用
u u d e c o d e程序将它转回到二进制文件中。
做为编码和解码二进制的手工替代物,许多邮件程序支持M I M E扩展,允许将二进制文件
做为附加文件发送和接收,然后自动为你进行编码和解码。M I M E对多媒体文件,如i m a g e或
声音文件,非常有用。P i n e支持内嵌的M I M E,而E l m却依赖于m e t a m a i l提供这种支持。
1.5.1 编码二进制
u u e n c o d e可以对标准输入或指定文件进行碥码。在每一种情况下,都必须提供文件名,
该文件名用于编码数据被转换回二进制时采用的文件。uuencode 输出编码二进制数据到标准
输出。下面示出了u u e n c o d e的语法格式,其中n a m e为解码后二进制数据的名字, f i l e是编码前
二进制文件的名字。记住由于u u e n c o d e发编码数据到标准输出,所以应该重定向到一个输出
文件里,然后就发送该输出文件:
uuencode file name
u u d e c o d e程序将u u e n c o d e编码的文本数据做为参数,使用在u u e n c o d e操作中提供的名字产
生二进制文件。下面的例子给出了基本的步骤,一个文件经编码后重定向到另一名为
e n c o d e d - f i l e的文件,n a m e是解码后二进制文件使用的名字。然后通过m a i l x程序发送e n c o d e d -
f i l e文件。当m a i l x程序接收到该信件后,它被存为e n c o d e d - f i l e的文件。此文件然后使用
u u d e c o d e解码,产生名为n a m e的二进制文件:
u u e n c o d e file name> e n c o d e d - f i l e
m a i l x a d d r e s s < e n c o d e d - f i l e
& s msg-num encoded-file
u u d e c o d e e n c o d e d - f i l e
在下一个例子里,用户编码图形文件j u s t i n . g i f。图形文件如g i f和j p e g文件是二进制文件,
在发送之前,需要转换为字符格式。在该例子中,编码前的二进制文件和解码后的文件名字
是相同的。编码输出被重定向到j u s t y p i c文件中:
$ uuencode justin.gif justin.gif > justypic
j u s t y p i c仅包含字符数据,尽管这些字符数据是由二进制数据编码得到的,但用户可以通
过邮件系统发送j u s t y p i c,如下所示:
$ mail justin@ix.com < justypic
一旦接收到后,你可以使用uudecode 转换编码的数据回到它的二进制形式。uudecode 生
成的二进制文件,采用u u d e c o d e编码时给它指定的名字。
在下面的例子里,来自j u s t y p i c文件的数据作为信件被接收,接收者保存信件为j u s t y p i c。
uudecode 然后转换此信件到原来的二进制格式,并将它放置在j u s t i n . g i f文件里。接收者保存
信件的名字不必同发件人所使用的名字相同。
6 第一部分电子邮件
下载
对归档案文件和压缩文件可以使用相同的过程,首先将几个g i f文件合并为一个档案文件,
压缩它,然后可以使用u u e n c o d e编码此压缩档案文件,并发送它。接收它的人可以解码它为
压缩档案文件,然后解压缩,并从档案文件中抽出g i f图形。你可以对目录及其子目录进行操
作。在下面的例子中,整个目录b i r t h d a y被t a r归档,用z i p压缩,压缩档案被编码为字符数据,
并存为b i r t h d a y d i r,二进制数据的名字为b i r t h d a y. t a r. Z。m a i l x发送此文件,接收者保存该信件
在文件b i r t h d中。u u d e c o d e然后解码b i r t h d文件,产生b i r t h d a y. t a r. Z文件,然后解压,并解档建
立b i r t h d a y目录。
由于u u e n c o d e程序可以从标准输入接收二进制数据,因此可以把档案、压缩、编码和邮
件操作结合为下面的管道顺序。在t a r操作中的-表示输出到标准输出,注意用于解码二进制文
件的名字作为变量结合给u u e n c o d e。uudecode 将产生二进制文件b i r t h d a y. t a r. Z :
$ tar cf - b i r t h d a y | z i p | uuencode birthday.tar.z | m a i l d y l a n @ p a n g o 1 . c o m
1.5.2 MIME
MIME 的意思是多目标I n t e r n e t邮件扩展(Multi-Purpose Internet Mail Extension),可使邮
件程序发送和接收多媒体文件并使用不同字符集(如不同语言的文件)。多媒体文件可以是图形、
声音或视屏。支持M I M E的邮件程序可以自动地将二进制文件附加到信件上。有M I M E功能的
邮箱维护m a i l c a p文件,此文件可以将不同类型的M I M E信件与你系统上可浏览这些信件的应
用程序关联。然后邮件程序就可以运行程序,显示图像信件,或播放声音文件。一些邮件程
序,如P i n e有内嵌M I M E的功能,使用它们自己的m a i l c a p文件版本。其他的邮件程序,如E l m
采用m e t a m a i l程序,此程序有支持M I M E的功能。
1.6 在线通信: w r i t e和t a l k
使用w r i t e和talk 程序,你可以与同时登录的其他用户直接通信。write 程序操作允许你同
登录的其他人联系,并在他们的屏幕上显示信件。t a l k程序操作如同使用在线服务的聊天室,
它允许你与其他用户直接进行双向交谈,如同电话那样。
第1章电子邮件概述7
下载
1.6.1 直接连接: write
使用w r i t e程序,可以发实时信件到另一个用户, w r i t e操作如同两个人在收音机上交流,
发件人的信件立即显示在接收者的屏幕上。用此方法, w r i t e保证得到用户立即的注意。
记住w r i t e不像标准的邮件操作,不要认为它发送的信件会放置在邮箱文件里,它只在另
一个用户的屏幕上简单地显示字符,接收用户并不能保存它。
要发送一个w r i t e信件,可以键入w r i t e命令,后跟用户名(通常是登录名),这样就打开一
个到该用户的连接,然后你键入的文本将显示在那个用户的屏幕上。要结束信件的输入,就
在一个单独的行上键入C t r l - d,那个用户的屏幕上将显示一个通知信件,说明信件来自你,并
给出日期和时间,然后显示信件。在下面的例子中,用户发信件到d y l a n,在键入信件后,用
户按C t r l - d关闭连接:
$ write dylan
How are you today?
^ D
D y l a n接收到包含一个信件头的信件,发件人键入C t r l - d显示为E O T,表示结束传输:
Message from chris [Tues July 5 11:31]
How are you today?
E O T
你可以使用w r i t e程序在你和另一个用户之间建立双向通信,使用w r i t e发信件,接收用户
可以使用write 加用户名字参数发送响应,信件被显示在两个人的终端屏幕上。
交互式w r i t e通信的处理好像你们通过电话进行谈话,第一个用户发信件,然后指示信件完
成。然后另一个用户回答响应。许多U n i x用户采用公共约定,字符o表示信件的结束,字符o o
表示结束并退出,在你完成通信并希望退出时使用。你可以用C t r l - d结束连接。然而,两个用
户必须键入C t r l - d,你的C t r l - d切断与另一个用户的连接,另一个用户的C t r l - d切断同你的连接。
在图1 - 1中,c h r i s启动一个与dylan 的w r i t e通信,一个信件通知显示在d y l a n的屏幕上,后
跟c h r i s的第一个信件内容。d y l a n用w r i t e命令后跟c h r i s的登录名响应,接着一个通知信件显示
在c h r i s屏幕上,后跟d y l a n的响应。它们一行一行地交谈,在响应之前要等待另一个人完成。
c h r i s键入o o表示他完成了谈话,然后按C t r l - d。在d y l a n的屏幕上显示E O T (传输结束)。dylan 用
结束信件响应,然后同样按C t r l - d,在c h r i s的屏幕上显示E O T符号。
图1-1 两个用户使用w r i t e命令进行双向交谈,每一行后的o表示结束,
o o表示结束并退出。用户按C t r l - d结束连接,它在另一个
用户的屏幕上显示为E O T
8 第一部分电子邮件
下载
c h r i s的屏幕d y l a n的屏幕
即使正处于其他任务中间,如编辑一个文件, w r i t e通信也会显示在你的屏幕上。如果你
不想被w r i t e中断,可以键入m e s g命令。m e s g命令采用两个可选项: y或n。mesg -n 阻止w r i t e
信件的接收。mesg -y 恢复w r i t e信件的接收。用m e s g - n命令可阻止任何其他用户使用w r i t e发
给你信件:
$ mesg -n
1.6.2 交互通信: t a l k
使用t a l k程序,可以在你和另一个用户之间设置交互式双向通信。不同于w r i t e,用户可以
同时键入信件。t a l k程序操作如同两个人打电话,可以彼此一直来回交谈。它同样类似于多个
人的聊天室,可以同时键入文本。你可以键入t a l k命令,后跟另一个用户的名字来建立一个
t a l k连接。一个信件显示在那个用户的屏幕上,询问他是否想去谈话,并给出你的用户名。然
后那个用户要响应时,可以使用他的t a l k命令,后跟你的用户名。你和他的屏幕则被分为上下
两段。顶部是你键入的字符,底部显示另一个用户键入的字符。每一个用户可以键入中断字
符结束会话,通常为C t r l - c。
% talk chris
在图1 - 2中,c h r i s和d y l a n彼此使用t a l k命令通信。每个人可以自由地在他拥有的屏幕部分
键入响应。
图1-2 talk命令将屏幕分为了两部分。两个用户显示相同的拆分屏幕。
每一个用户随时可以键入他的内容。在图中, C h r i s启动
一个与D y l a n的会话,C h r i s的键入出现在屏幕的
顶部,D y l a n的键入出现在底部,使用
sensir 回复于:2003-01-22 15:10:42 |
置为精华! |
午夜聆听 回复于:2003-01-22 15:28:57 |
收藏楼主的帖子。 |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/