您所在的位置:读书频道 > 操作系统 > Linux > 19.6.1 Linux Mail

19.6.1 Linux Mail

2007-12-06 19:25 鸟哥 机械工业出版社华章公司 字号:T | T
一键收藏,随时查看,分享好友!

《鸟哥的Linux私房菜——服务器架设篇》(第二版)第19章的主要介绍的是以Postfix为主的邮件主机架设。本文主要介绍的是Linux Mail。

AD:

19.6  客户端的收发信软件

应用Mail Server有两种主要的方式,可以直接登录Linux主机来操作MTA,也可以通过客户端的MUA软件来收发信件,下面分别介绍这两种方式。

19.6.1  Linux Mail

在Unix like的操作系统中都会存在一个可以进行收发信件的指令,即Mail指令。这个指令是由Mail这个软件所提供的,所以需要先安装Mail软件。另外,由于Mail是Linux系统的功能,所以即使端口25(SMTP)没有启动,它还是可以使用的,只不过该邮件只会被放到队列,而无法寄出去。下面来谈一谈最简单的Mail用法。

1. 用Mail直接编辑文字邮件与寄信

Mail的用法很简单,即利用“Mail[E-mail address]”的方式来将信件寄出,“ E-mail address”可以是对外的邮件地址,也可以是本机的账号。如果是本机账号的话,直接加账号名称即可。例如:Mail root或Mail somebody@his.host.name。如果是对外寄信的话,信件默认的Mail from就会填写main.cf内的myorigin变量的主机名称。先来试试看,寄给dmtsai@linux.vbird.tsai

[root@linux ~]# Mail dmtsai@linux.vbird.tsai
Subject: Just test          <==这里填写信件标题
This is a test E-mail.     <==下面为信件的内容
bye bye !
.                              <==注意,这一行只有小数点,代表结束输入
Cc:                           <==密码副本

这样即可将信件寄出。另外,早期的Mail Server是可以接收IP寄信的,例如:Mail dmtsai@[192.168.1.254],记得IP要用中括号包起来。不过由于受到垃圾邮件的影响,现在这种方式几乎都无法成功的将信件寄出了。

2. 利用已经处理完的纯文本文件寄信

这里说的不是以附件发送的方式,因为在Mail这个程序里编辑信件是个很痛苦的差事,不能够按上、下、左、右键回到刚刚编辑有错误的地方,很伤脑筋。此时可以通过标准输入来处理。如果您忘记“< ”代表的意义,请参考《鸟哥的私房菜——基础学习篇》中的Bash shell章节。例如您要将默认目录的“.bashrc”寄给别人,可以这样做:

[root@linux ~]# Mail -s 'My bashrc' dmtsai < ~/.bashrc

3. 开始接收信件

寄信比较简单,那么收信呢?收信还是使用Mail。直接在提示字符后输入Mail时,会主动的捉取用户在/var/spool/Mail下的邮件信箱(Mailbox),例如dmtsai这个账号在输入Mail后,就会将/var/spool/Mail/dmtsai文件的内容读出来并显示到屏幕上,结果如下:

[root@linux ~]# Mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/Mail/dmtsai": 1 message 1 unread
>U  1 root@linux.vbird.tsai  Fri Nov 24 11:34  32/764   "My bashrc"
&  <==这是Mail软件的提示字符,可以输入“?”来查看可用指令

上述代码显示dmtsai有一封信,且会附上该信件的发信者、标题及收信时间等。可以应用的指令如下。

(1)读信(直接按Enter或输入数字按Enter)

当看到“> ”符号时,表示目前Mail所在的邮件字段,您可以直接输入数字按Enter或在“&”后的光标位置输入号码,即可看到该封信件的内容。如果持续按Enter,则会自“>”符号所在的邮件逐次向后读取每封信件内容。

(2)显示标题(直接输入h)

如果要重新显示每封信的标题,则输入h即可。

(3)回复邮件(直接输入R)

如果要回复目前“>”符号所在的邮件,直接输入R即可进入刚刚前面介绍过的Mail文字编辑界面了。可以在编辑信件后回复邮件。

(4)删除邮件(输入d)

输入“d## ”即可删除邮件。例如要删除第2封邮件,可以输入“d 2”如果要删除第10~50封邮件,可以输入“d 10-50”。如果有删除邮件的话,离开Mail box时,要使用q。

(5)储存邮件到文件(输入s+文件名)

如果要将邮件资料存下来,可以输入“s##filename”,例如要将第2封邮件存下来,可以输入“s 1 uuencode”即可将第2封邮件内容另存为uuencode文件。

(6)离开Mail(输入q或x)

要离开Mail可以输入q或者是x,输入x可以在不更改Mail box的情况下离开Mail程序,不管刚刚有没有使用d删除数据;使用q会将删除的数据清除,并且会将所有已读过的信件内容转存到默认目录下的mbox文件。也就是说,如果您不想更改Mail box,那就使用x或exit离开,如果想要使刚刚移除的操作生效,就要使用q。不过,使用q之后,只有未读的信件才会保留在/var/spool/Mail/accout里,其他已读的数据都会被存入“~/mbox”中。例如 /home/dmtsai/mbox为储存dmtsai已读过的信件。

(7)请求帮助

关于Mail更详细的用法可以输入help以显示目前Mail的所有功能。

上面是简易的Mail收信功能。不过,如果离开Mail时按下q,信件将转存到“~/mbox”这个邮件信箱,那么该如何读取这个文件内的信件数据呢?可简单的使用以下方式来读取:

[root@linux ~]# Mail -f ~/mbox

4. 以“附件”的方式寄信

前面提到的都是信件的内容,那么能否以“附件”的方式来传递文件呢?当然是可以的,不过需要uuencode指令的帮助,在CentOS中这个指令属于shartuils,请先利用yum来安装它。接下来可以这样使用:

[root@linux ~]# [利用uuencode编码 ] | [利用Mail寄出去]
[root@linux ~]# uuencode [实际文件] [信件中的文件名]|Mail-s '标题' E-mail

范例一:将“~/.bashrc”以附件的方式寄给dmtsai
[root@linux ~]# uuencode ~/.bashrc bashrc | Mail -s 'test encode' dmtsai

这样就能寄出去了,不过,如果收下这封信件呢?需要通过译码器来解码。首先需要将该文件存下来,然后进行如下操作:

[root@linux ~]# Mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/Mail/dmtsai": 2 messages 2 unread
>U  1 root@linux.vbird.tsai  Fri Nov 24 11:34  32/764   "My bashrc"
 U  2 root@linux.vbird.tsai  Fri Nov 24 11:52  24/904   "test encode"
& s 2 test_encode
"test_encode" [New file]
& exit

[root@linux ~]# uudecode test_encode -o decode
                               加密文件          输出文件

虽然Mail指令不是很好用,但至少它可以提供一种在Linux纯文本模式下的简单的收发信件功能。我们最好还是熟悉一下。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节

分享到:

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点职位

更多>>

热点专题

更多>>

读书

网管员必读——故障排除
本书是《网管员世界》杂志社推出的一本集知识性和实用性于一身的网络管理技术书籍,书中收集了《网管员世界》自创刊以来“故障诊

51CTO旗下网站

领先的IT技术网站 51CTO 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院 区块链第一聚合媒体 zhijiapro