Linux下的mail命令测试

一般人都会先man一下吧,这里把结果贴出来 :

MAIL(1) BSD General Commands Manual MAIL(1)

NAME
mail - send and receive mail

SYNOPSIS
mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] to-addr… [– sendmail-options…]
mail [-iInNv] -f [name]
mail [-iInNv] [-u user]

我是一个典型的懒人,不喜欢看这些乱七八糟的参数,我只希望能够最快的解决问题。

废话少说,我只用例子说话:

1. 最简单的一个例子:

mail -s test yangfang@fudan.edu.cn </dev/null

这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并且后面的邮箱不会挡这种可能莫名奇妙的信的时候,就能收到这封信了。如果你不想被这种乱七八糟的事情干扰,后面的邮箱请使用本地帐户。

2. 第二个例子:

三种常用格式发信
mail -s test yangfang@fudan.edu.cn #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束
echo “mail content”|mail -s test yangfang@fudan.edu.cn #第二种方法,我用的最多,可能是喜欢管道的缘故吧
mail -s test yangfang@fudan.edu.cn < file #第三种方法,以file的内容为邮件内容发信

其实你很容易发现mail从标准输入读取文件内容并发信,我也只想让你知道这一点,到此,第二个例子结束。

3. 第三个例子,带附件的邮件

如果你的系统里没有uuencode命令的话,请先安装sharutils(yum install sharutils)

uuencode 需要两个参数,第一个是你要发送的文件(们),当然这个也可以用管道来做,第二个是显示的文件名

uuencode /home/yfang/a.gif a.gif|mail -s pictest yangfang@fudan.edu.cn
tar czf - /home/yfang/ | uuencode home.tgz |mail -s pictest yangfang@fudan.edu.cn

ps: 顺便补一句,slackware下的mail好像有一个-a参数,可以直接添加附件,我没有用过。