免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: haoji
打印 上一主题 下一主题

Unix网络 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-05-17 19:56 |只看该作者
第2章电子邮件程序mailx 11
下载
Mailx输出带头
部信息的信件

重定向

图2-1 将一个文件重定向为m a i l x的输入

当采用一个文件作为重定向输入发送信件时,m a i l x不会提示用户输入主题。如果要想输
入主题,就使用m a i l x的- s选项(m a i l x的各种选项列在表2 - 1中),例如在下面的示例中,将
c o m p l i s t文件作为信件发送给d y l a n,主题为c o m p u t e r:

$ m a i l x - s c o m p u t e r d y l a n < c o m p l i s
t


表2-1 mailx命令选项

命令选项作用
-f m a i l b o x - f i l e n a m e 让m a i l x程序读取用户目录中指定邮箱文件中的信件
- H 只显示信件的头部信息
-s s u b j e c t 指定发送信件的主题
- F 将信件及其第一个接收者名字保存在一个文件里

2.1.2 给多个用户发送同一封信件
如果同时给多个用户发送一封信件,只要在命令行中列出所有接收者的地址就行了。在
下面的示例中,给d y l a n和j u s t i n两个用户同时发送同一封信件:

$ mailx dylan justin
S u b j e c t : G a m
e
We have to figure out how to play hockey on a train
C h r i
s
^
D


E O
T
$


也可以使用重定向符同时向多个用户发送一个文件的内容,例如下面的命令就是将

论坛徽章:
0
12 [报告]
发表于 2008-05-17 19:57 |只看该作者
12 第一部分电子邮件
下载
m y i d e a文件中的内容发送给dylan 和j u s t i n两个用户:

$ mailx dylan justin < myidea


2.1.3 拷贝信件内容到一个文件里
如果要将一封发送的信件保存在一个文件里,就在命令行中接收者地址的后面指定一个
文件名,另外还要指出该文件的相对路径或绝对路径。在下面的示例中,用户将发送的信件
保存在g a m e n o t e文件里,命令中指出了该文件的相对路径,“.”表示当前目录:

$ mailx dylan ./gamenote
Subject: G a m
e
We have to figure out how to play hockey on a train
C h r i
s
^
D


E O
T
$ cat gamenote
Subject: G a m
e


We have to figure out how to play hockey on a train
C h r i
s


$


对于具有重定向输入和多个接收者的情况,也可以指定一个文件用来保存信件:

$ mailx dylan justin < myidea ./gamenote


2.1.4 采用t i l d e命令编辑信件
一个邮件包括两部分:头部和正文。其中,头部包括接收者的地址、信件的主题等一些
信息。如上所述,一般情况下,m a i l x的命令参数就是接收者地址,信件的主题待系统提示输
入,一旦输入主题后就可以接着输入正文内容。

m a i l x提供了一系列的t i l d e命令,用于对邮件的头部和正文进行编辑操作。一个t i l d e命令
由前面一个~和后面一个字符组成,放在相应的一行中。~作为一个特殊字符,用来表示t i l d e
命令。t i l d e命令并不作为信件内容的一部分,而是用来执行各种文件或编辑命令。用于头部
的t i l d e命令,可以改变接收者的地址和邮件的主题;用于正文的t i l d e命令,可以重新显示、保
存或修改正文内容。如果用户需要在信件中将~作为一个字符用,就要在它前面再加上一个~

即~ ~ 代表一个字符~。表2 - 2中列出了一些通用的t i l d e命令。另外,也可以使用~?命令列出各
种t i l d e命令的清单。

表2-2 Mailx中用于发送邮件的t i l d e命令

命令作用
用于邮件头部的t i l d e命令
~ h 提示用户输入地址、主题和抄送名单
~s s u b j e c t 输入一个新的主题
~t a d d re s s 将地址添加到地址簿中
~c a d d re s s 将地址添加到抄送名单中
~b a d d re s s 将地址添加到秘密抄送名单中
用于邮件正文的t i l d e命令
~ v 启动Vi编辑器

论坛徽章:
0
13 [报告]
发表于 2008-05-17 19:58 |只看该作者
第2章电子邮件程序mailx 13
下载
(续)

命令作用
~ p 重新显示邮件的正文
~ x 终止信件并退出m a i l x程序
~w f i l e n a m e 将信件保存在指定文件里
~r f i l e n a m e 将指定文件的内容输入到信件正文中
~ e 启动缺省的文件编辑器
~| f i l t e r 将信件的内容送到指定的过滤器中,并将信件内容
替换为过滤器输出的内容
~m m e s s a g e - l i s t 采用缩格方式插入指定接收信件的内容
~f m e s s a g e - l i s t 不采用缩格方式插入指定接收信件的内容
通用t i l d e命令
~

显示所有的t i l d e命令
~ ~ 在文本中作为字符输入一个~
~!c o m m a n d 在输入信件内容时执行一个s h e l l命令

1. 用于信件正文的t i l d e命令
一旦用户输入完主题敲回车键后,m a i l x程序就进入输入模式,供用户输入正文。在这种
输入模式下,除了可以使用B a c k s p a c e键删除前一个字符外,没有其他的文本编辑功能。
如果想使用一个编辑器撰写一封信件,就可以在m a i l x输入模式中采用tilde 命令~ v来启动
Vi编辑器。~ v命令单独输入在一行中,后面敲入回车键。一旦启动了Vi编辑器,就可以像编
辑其他文本文件一样编辑信件,并在编辑器中显示所有已输入的文本内容。当你撰写完信件
后,可以使用Vi中的Z Z或: w q命令保存并退出编辑器,然后重新返回到m a i l x的输入模式。不
过,这个时候就不再显示已输入的信件内容,而只是在屏幕上显示c o n t i n u e。如果需要的话,
用户还可以接着输入另外的文本内容,或者执行其他的t i l d e命令。如果要终止信件内容的输
入,就键入C t r l - d。

在m a i l x的输入模式下还可以使用其他一些t i l d e命令,以完成诸如重新显示、保存或修改
正文内容等一些操作。各种t i l d e命令的作用都在表2 - 2中说明了,所以在此不另赘述。在下面
给出的例子中,采用~w mydata命令将前面已输入的信件内容保存在文件m y d a t a里,然后使用
~ r命令读取文件m y n a m e s中的内容并将它添加到信件内容中:

论坛徽章:
0
14 [报告]
发表于 2008-05-17 19:58 |只看该作者
14 第一部分电子邮件
下载
如果写完信件后,用户并不想发送出去,就可以使用t i l d e命令~ x或~ q终止m a i l x。这种情
况下,信件被删除掉并返回到Unix shell。如果是使用~ q命令终止的,那么被删除的信件会保
存在一个名叫d e a d . l e t t e r的文件中,可供用户以后查看。

还可以通过U n i x的过滤器处理信件的内容。你可以将信件的当前内容作为一个过滤器的
输入,然后将该过滤器的输出替代为信件的内容。例如,如果信件的内容是一份清单,就可
以通过管道命令将清单送到s o r t过滤器,经过s o r t分类过滤后的清单内容就成了新的信件内容。
t i l d e命令~| 就是用来实现上述功能的,它的命令参数是一个过滤器。

如果要对信件内容进行格式化,就可以使用f m t过滤器。通常在你输入信件内容时,每行
文本的长度并不像字处理器中的那样整齐。因此,可以通过f m t过滤器格式化信件的文本行,
使每行文本都有大约占7 2个字符的标准长度。在格式化过程中,那些以空格或制表符Ta b 开头
的行都看作是一个段落的开始。下面给出了一个采用f m t过滤器格式化信件内容的例子:


2. 用于信件头部的t i d l e命令
m a i l x中有一些t i d l e命令是用于修改信件头部信息的。一个邮件的头部可以包括四个部分:

收件人名单、主题、抄送名单和秘密抄送名单。其中,抄送名单和秘密抄送名单都是可选项,

而收件人名单和主题都是必选项。

收件人名单是接收信件者的名单,你可以在启动m a i l x的命令行中输入,也可以在撰写信

件时使用t i l d e命令~t输入。如果要改变信件的主题,可以使用~s命令。只要在输入~s命令

的同一行中后面写入新的主题,就将信件的主题改变过来了。在下面的示例中,对信件的收

件人名单和主题都分别进行了改变,即将j u s t i n增加到收件人名单中,并将主题从原来的

“F i l e s”改为“Class Roster”

论坛徽章:
0
15 [报告]
发表于 2008-05-17 19:59 |只看该作者
第2章电子邮件程序mailx 15
下载
除了将邮件发送给主要的收件人外,你可能还想将它抄送给其他相关的人。这种情况下
就需要在抄送名单上填入地址,然后m a i l x程序按照填入的地址将邮件同时发送给在抄送名单
上列出的所有用户。需要填写抄送名单时,就使用~ c命令。在抄送的情况下,抄送人的地址
会出现在收件人和所有抄送人接收到的信件的结尾。如果你不想让别人知道抄送人的邮件地
址,那就使用秘密抄送名单。除了秘密抄送人的地址不列在信件的结尾以外,秘密抄送与一
般抄送的操作几乎都一样。填写秘密抄送名单时,使用~ b命令。

如果需要修改所有的邮件头部信息,就可以使用~ h命令。m a i l x程序将依次向你提示输入
新的收件人名单、新的主题和新的抄送名单。

2.2 接收信件
当信件到达系统后,它们将被放在用户的邮箱(m a i l b o x)里。邮箱实际上就是一个文件,
用来保存最近接收到的信件。用户可以使用像m a i l x那样的邮件程序来检索邮箱中的所有信件。
如上所述,当你在命令行中启动m a i l x后,就进入了m a i l x程序提供的s h e l l,它具有一套自己的
命令,可用于阅读和回复信件、或者发送新的信件。表2 - 3和表2 - 4详细列出了m a i l x程序通常
使用的信件列表规则和命令。

表2-3 信件列表符规则

信件列表符作用
信件序号代表指定序号的信件
信件序号1 -信件序号2 代表信件序号1到序号2范围内的所有信件
. 代表当前信件
^ 代表第一封信件
$ 代表最后一封信件
* 代表邮箱里的所有信件
/p a t t e r n 代表主题中含指定p a t t e r n(样式)的信件
地址代表从指定地址发来的信件
: n 代表所有新收到的信件
: o 代表所有以前收到的老信件
: r 代表所有读过的信件
: u 代表所有未读过的信件
: d 代表所有删除过的信件

论坛徽章:
0
16 [报告]
发表于 2008-05-17 20:00 |只看该作者
16 第一部分电子邮件
下载
表2-4 用于显示信件的m a i l x命令

信件的状态码作用

N 新收到的信件
U 以前未读过的信件
R 在本次操作中读过的信件
P 在以前的操作中已读过但还保留在收件箱中的信件
D 已标记为删除的信件

* 已保存在另外一个邮箱文件中的信件
显示信件命令

h 重新显示信件头部信息
z+ z-用来在显示信件头部信息时翻滚屏幕
t m s g e - l i s t 显示由信件列表符m s g e - l i s t指定的信件,如果不带m s g e - l i s t则显示当前信件
p m s g e - l i s t 显示由信件列表符m s g e - l i s t指定的信件,如果不带m s g e - l i s t则显示当前信件
n 显示下一封信件

+ 显示下一封信件
-显示上一封信件
top m s g e - l i s t 显示由信件列表符m s g e - l i s t指定的最上面几行信息,如果不带m s g e - l i s t,
则显示当前信件
= 显示当前信件的序号

进入邮件s h e l l后,屏幕上就会显示出各个信件的头部摘要信息。每一封信件的摘要信息
都分成几个部分,其中第一个部分是信件的状态,它由一个大写的字母表示,通常为N或U。
N表示一封新的信件,而U表示一封以前接收到的、但还未读过的信件。第二个部分是信件的
序号,它可以代表m a i l x命令中的相应信件。第三个部分是发件人的地址,接下来的一个部分
就是接收到的日期和时间,然后是信件内容包括的行数和字符数,最后一部分用来显示信件
的主题。

显示完所有的头部摘要信息后,邮件s h e l l就接着显示它的提示。在System V release 4版
本中,这个提示就是一个“?”;而在BSD Unix中,这个提示却是一个“&”。在该邮件提示
后面,用户就可以输入各种用来操作信件的邮件命令。


如果在邮箱里没有任何信件,系统将给出没有邮件的提示,并返回到Unix shell。示例如
下:

$ m a i l
x
Sorry, no mail
$


2.2.1 信件列表符及当前信件标记符
m a i l x可以通过信件列表符或当前信件标记指定信件。字符“>”就是当前信件标记,它
放在当前正要操作的信件的前面。如果在邮件命令中没有指定信件序号,系统将缺省指定当
前信件。例如在上述的头部摘要信息中,缺省的当前信件是序号为1的信件。如果在命令中已

论坛徽章:
0
17 [报告]
发表于 2008-05-17 20:00 |只看该作者
第2章电子邮件程序mailx 17
下载
指定了一个信件,那该信件就自动成为当前信件,而当前信件标记也会自动移到它的前面。

用户还可以使用信件列表符指定信件。一个信件列表符可以指定一封信件,还能同时指
定一组信件。信件列表符通常是由信件序号组成的,信件序号就是显示在信件头部摘要信息
的数字。在m a i l x命令中指定一个信件序号,就代表对相应序号的信件进行操作。许多邮件命
令都可以同时对一组信件进行操作,用户可以使用信件列表符来指定一组信件。例如可以使
用“1 - 3”这样的信件列表符来代表序号为1至3范围内的所有信件,共包括三封信件,序号分
别为1、2和3。

信件列表符中除了使用信件序号外,还可以有其他的表示方法。一些特殊的字符可以用
来代表某种特定的信件,其中字符^用来代表第一封信件,例如信件列表符“^ - 3”代表从第
一封到第三封范围内的信件。$用来代表最后一封信件,例如“4 - $”代表从第4封到最后一封
范围内的所有信件。点号.用来代表当前的信件,星号*代表所有的信件。例如,如果要显示
所有的信件,可以使用命令“p * ”。另外,也可以通过指定发信者的地址或信件的主题来选
择一组信件,一个地址代表所有从该地址发送过来的信件;一个字符样式前面加上一个/,就
代表主题中含有指定字符样式的所有信件。例如,/ b i r t h d a y代表主题中含有关键词b i r t h d a y的
所有信件;j u s t i n代表所有从j u s t i n发送过来的信件。

用户还可以根据信件的状态指定一组信件,即在状态字符的小写字母前加上一个冒号。
值得注意的是,在头部摘要信息中使用的状态字符是大写字母,而这里的状态字符必须采用
相应的小写字母。例如,: n用于代表所有新信件,: u代表所有未读过的信件。

2.2.2 显示信件
显示信件的方法有很多种,其中最简单的方法是输入信件的序号。在m a i l x命令提示符处
键入序号并敲回车键后,指定序号的信件内容将按逐屏方式显示出来。需要翻滚屏幕时,使
用空格键或回车键。

如果想一次连续查看几封信件的内容,只要将这些信件的序号一起输入到m a i l x命令提示
符后即可。另外,还可以采用在头部摘要信息列表中指定信件相对于当前信件的位置来代表
信件。如果指定信件在当前信件之前,就用“-”命令,后面接一个用于具体指明位置的数字。
例如,假定序号为8的信件是当前信件,那- 3就代表序号为5的信件。如果指定信件在当前信
件之后,就用“+”命令,它后面的数字用来具体说明位于当前信件之后的第几个位置。如果
是当前信件的下一封信件,也可以使用n命令指定。

使用P或t命令显示信件时,可以通过后面的信件列表符,一次指定一个或一组信件显示。
如果想指定一组信件显示,就在它们后面依次列出相应的每一封信件的序号,中间由一个空
格分开。例如,“p 2 5 ”就表示依次显示序号为2和5的两封信件。如果想指定在两封信件之
间的所有信件,就要指出最前和最后两封信件的序号,中间采用一个“-”连起来。例如,“p
1 - 3”将依次显示序号分别为1、2和3的三封信件。

如果使用p或t命令时,后面没有指定信件列表符,就缺省显示当前信件。如果信件列表符
为一个“+”,就显示上一封信件;如果为一个“-”就显示下一封信件。在下面给出的示例中,
第一个p命令中没有指定任何信件列表符,则显示序号为1的当前信件;第二个p命令中,指定
一个数字2,因此将显示序号为2的信件:

论坛徽章:
0
18 [报告]
发表于 2008-05-17 20:01 |只看该作者
18 第一部分电子邮件
下载
在使用p或t命令时,还可以通过一些特殊的信件列表符来指定需要显示的信件。例如,^
用来指定第一个信件,$用来指定最后一个信件,*用来指定所有的信件,冒号:用来指定一定
类型的信件。另外还可以通过发件人地址或信件的主题指定需要显示的信件。在使用p或t命
令时,可以使用的信件列表符规则,请参见前面的表2 - 3。

如果要查看信件的头部信息,可以通过h命令来实现。在下面的示例中,输入h命令后,
就显示当前邮箱中所有信件的头部信息:


如果当前邮箱中的信件比较多,那么头部信息列表就不能在一屏中显示完毕。这种情况
下,执行h命令后,首先显示第一屏的信息,如果要显示下一屏信息就继续输入z +命令,如果
要返回到上一屏就使用z -命令。如果你知道所需要的信件头部信息的序号,就可以在h命令中
直接指出相应的序号,例如“h 1 5”将显示序号为1 5及前后共占一屏的头部信息列表。

2.2.3 信件的删除及恢复删除
当用户退出m a i l x时,系统将自动保存已读过的信件。如果不想保存而要删除一封信件,
就使用d 命令。例如,命令“d 3”将删除序号为3的信件。如果一次要删除几封信件,就可以
使用相应的信件列表符指定所要删除的信件。例如,命令“d 2-4”将一次删除序号为2、3和4
的三封信件。如果在d命令中没有指定任何信件列表符,则删除当前字符。在下面的示例中,
用户删除了第三封信件:

论坛徽章:
0
19 [报告]
发表于 2008-05-17 20:02 |只看该作者
第2章电子邮件程序mailx 19
下载
值得注意的是,当你使用d命令删除信件时,信件并没有马上被删除掉,而只是被标记为
删除,只有当退出m a i l x时才真正执行删除操作。因此,在未退出m a i l x之前,用户可以使用u
命令来恢复在本次操作中删除的信件,这实际上相当于去掉它们的删除标记。执行u命令时,
也可以使用信件列表符来指定一个或一组信件进行操作,例如,命令“u 3”将恢复序号为3的
信件,而“u 2-4”恢复序号分别为2、3和4的三封信件。表2 - 5中列出了各种删除及恢复删除
的命令。


表2-5 删除与恢复信件命令

命令作用
d m e s s a g e - l i s t 从邮箱中删除信件列表符m e s s a g e - l i s t指定的信件
u m e s s a g e - l i s t 恢复由信件列表符m e s s a g e - l i s t指定的、在本次操作中被删除的信件
q 退出m a i l x程序,并将所有读过的信件保存在m b o x文件里
x 退出m a i l x程序,但不删除所有已标记为删除的信件
pr m e s s a g e - l i s t 在收件箱里保存所有的信件,包括已读过的信件

2.2.4 回复信件和发送新信件
用户通过邮件s h e l l,可以撰写和发送自己的信件。如果是回复一封刚接收到的信件,
m a i l x将自动利用接收信件里的头部信息。只要用户指定需要回复的信件后,就可以立即输入
回复内容,而无需再一一输入头部信息。

用户在邮件s h e l l里回复信件时,输入R或r命令,后面指定需要回复的信件序列号。然后
m a i l x将自动产生一个头部信息,并进入输入模式供用户填写回复内容。这种头部信息中包括
发件人的地址,以及发件人原来指定的信件主题。而回复信件的主题只是在原来的主题前加
上了“R e :”,以表示这是一封回复的信件。填写完回复内容后,就可以键入C t r l - d命令退出输
入模式,然后由系统将回复信件发送出去。

论坛徽章:
0
20 [报告]
发表于 2008-05-17 20:02 |只看该作者
20 第一部分电子邮件
下载
如果你收到了由发件人同时发送给多个用户的原始信件,就可以针对该信件将回复内容
发送给发件人和所有其他接收到信件的人。这可以通过执行r 命令来实现。必须注意,如果你
只想将回复信件发送给发件人一个人,而不是所有其他接收到的人,就不要使用r命令,而只
能使用R命令。

如果是撰写一封新邮件,就使用m命令。在下面的示例中,用户将一封新的信件发送给
a l e i n a:


在撰写一封新邮件时,可以插入邮箱中已有信件的内容。例如,在回复某个人给你发来
的信件时,可以在你的邮件中插入一些他写的内容。另外,你也可以将某个人写的内容转发
给另一个人。如前所述,使用t i l d e命令~ m或~ f,就可以读取已有信件中的内容,放在你正在
撰写并准备发送的信件中。这两个命令的参数是信件列表符,通常为信件序号。例如,“~m 2”
将读取第二封信件的内容插入到正在撰写的新邮件中。~ m和~ f这两个t i l d e命令的不同之处,
在于前者采用缩格方式插入内容,而后者不采用缩格方式插入内容。

另外,用户还可以使用v命令直接对收到的信件进行编辑。例如,在保存别人发来的一封
信件之前,你可能需要在它上面加上自己的评论。如果要直接编辑一封信件,只需在v命令后
指定该信件的序号即可。例如,“v 3”将对第三封信件进行编辑。表2 - 6中概括了各种发送信
件的命令。

表2-6 信件发送和编辑命令

命令作用
r 给所有收到原件的人发送回复
R 只给发件人发送回复
m a d d re s s 在m a i l x里给a d d r e s s指定的用户发送信件
v m e s s a g e - l i s t 使用v i编辑器编辑m e s s a g e - l i s t指定的信件

2.2.5 退出邮件s h e l l
使用q命令可以退出m a i l x程序,返回到U n i x的命令行s h e l l中。在退出时,系统将所有读
过的信件保存在用户起始(h o m e)目录中的一个名叫m b o x的文件里。然后m a i l x将给出一个
简短的提示,告诉用户有多少封信件被保存在m b o x文件中了,而你读过的信件将在收件箱里
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP