Linux - mail

来源:互联网 发布:数据共享方式比较 编辑:程序博客网 时间:2024/06/05 06:30
使用者邮件信箱: mail

使用 wall, write 毕竟要等到使用者在在线才能够进行,有没有其他方式来联络啊? 不是说每个 Linux 主机上面的用户都具有一个 mailbox 吗? 我们可否寄信给使用者啊!呵呵!当然可以啊!我们可以寄、收 mailbox 内的信件呢! 一般来说, mailbox 都会放置在 /var/spool/mail 里面,一个账号一个 mailbox (文件)。 举例来说,我的 vbird1 就具有 /var/spool/mail/vbird1 这个 mailbox 喔!

那么我该如何寄出信件呢?就直接使用 mail 这个命令即可!这个命令的用法很简单的,直接这样下达:『 mail username@localhost -s "邮件标题" 』即可! 一般来说,如果是寄给本机上的使用者,基本上,连『 @localhost 』都不用写啦! 举例来说,我以 root 寄信给 vbird1 ,信件标题是『 nice to meet you 』,则:

[root@www ~]# mail vbird1 -s "nice to meet you"Hello, D.M. TsaiNice to meet you in the network.You are so nice.  byebye!.    <==这里很重要喔,结束时,最后一行输入小数点 . 即可!Cc:  <==这里是所谓的『副本』,不需要寄给其他人,所以直接 [Enter][root@www ~]#  <==出现提示字符,表示输入完毕了!

如此一来,你就已经寄出一封信给 vbird1 这位使用者啰,而且,该信件标题为: nice to meet you,信件内容就如同上面提到的。不过,你或许会觉得 mail 这个程序不好用~ 因为在信件编写的过程中,如果写错字而按下 Enter 进入次行,前一行的数据很难删除ㄟ! 那怎么办?没关系啦!我们使用数据流重导向啊!呵呵!利用那个小于的符号 ( < ) 就可以达到取代键盘输入的要求了。也就是说,你可以先用 vi 将信件内容编好, 然后再以 mail vbird1 -s "nice to meet you" < filename 来将文件内容传输即可。

例题:
请将你的家目录下的环境变量文件 (~/.bashrc) 寄给自己!
答:
mail -s "bashrc file content" vbird < ~/.bashrc

刚刚上面提到的是关于『寄信』的问题,那么如果是要收信呢?呵呵!同样的使用 mail 啊! 假设我以 vbird1 的身份登陆主机,然后输入 mail 后,会得到什么?

[vbird1@www ~]$ mailMail version 8.1 6/6/93.  Type ? for help."/var/spool/mail/vbird1": 1 message 1 new>N  1 root@www.vbird.tsai   Wed Mar  4 13:36  18/663   "nice to meet you"&  <==这里可以输入很多的命令,如果要查阅,输入 ? 即可!

在 mail 当中的提示字符是 & 符号喔,别搞错了~输入 mail 之后,我可以看到我有一封信件, 这封信件的前面那个 > 代表目前处理的信件,而在大于符号的左边那个 N 代表该封信件尚未读过, 如果我想要知道这个 mail 内部的命令有哪些,可以在 & 之后输入『 ? 』,就可以看到如下的画面:

& ?    Mail   Commandst <message list>                type messagesn                               goto and type next messagee <message list>                edit messagesf <message list>                give head lines of messagesd <message list>                delete messagess <message list> file           append messages to fileu <message list>                undelete messagesR <message list>                reply to message sendersr <message list>                reply to message senders and all recipientspre <message list>              make messages go back to /usr/spool/mailm <user list>                   mail to specific usersq                               quit, saving unresolved messages in mboxx                               quit, do not remove system mailboxh                               print out active message headers!                               shell escapecd [directory]                  chdir to directory or home if none given

<message list> 指的是每封邮件的左边那个数字啦!而几个比较常见的命令是:

命令意义h列出信件标头;如果要查阅 40 封信件左右的信件标头,可以输入『 h 40 』d删除后续接的信件号码,删除单封是『 d10 』,删除 20~40 封则为『 d20-40 』。 不过,这个动作要生效的话,必须要配合 q 这个命令才行(参考底下说明)!s将信件储存成文件。例如我要将第 5 封信件的内容存成 ~/mail.file:『s 5 ~/mail.file』x或者输入 exit 都可以。这个是『不作任何动作离开 mail 程序』的意思。 不论你刚刚删除了什么信件,或者读过什么,使用 exit 都会直接离开 mail,所以刚刚进行的删除与阅读工作都会无效。 如果您只是查阅一下邮件而已的话,一般来说,建议使用这个离开啦!除非你真的要删除某些信件。q相对于 exit 是不动作离开, q 则会进行两项动作: 1. 将刚刚删除的信件移出 mailbox 之外; 2. 将刚刚有阅读过的信件存入 ~/mbox ,且移出 mailbox 之外。鸟哥通常不很喜欢使用 q 离开, 因为,很容易忘记读过什么咚咚~导致信件给他移出 mailbox 说~

由于读过的信件若使用『 q 』来离开 mail 时,会将该信件移动到 ~/mbox 中,所以你可以这样想象: /var/spool/mail/vbird1 为 vbird1 的『新件匣』,而 /home/vbird1/mbox 则为『收件匣』的意思。 那如何读取 /home/vbird1/mbox 呢?就使用『mail -f /home/vbird1/mbox』即可。

0 0
原创粉丝点击