linux mail命令用法

转自:http://www.cnblogs.com/xiaoshi1991/archive/2012/09/20/2695061.html

(1)、发mail示例

 mail -s test [email protected]

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

(2)、四种常用发mail格式

1、mail -s test [email protected] #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束

2、echo “mail content”|mail -s test [email protected] #第二种方法,我用的最多,可能是喜欢管道的缘故吧

3、mail -s test [email protected]< file #第三种方法,以file的内容为邮件内容发信

4、mail -s test -c [email protected]  [email protected]< file #第四种方法,给多个用户发送邮件

(3)、带附件的邮件

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

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

 uuencode /home/yfang/a.gif a.gif|mail -s pictest [email protected]

tar czf - /home/yfang/ | uuencode home.tgz |mail -s pictest [email protected]

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

(4)、阅读邮件

Linux下Mail命令收集系统收到邮件都会保存在“/var/spool/mail/[linux用户名]”文件中。
在linux中输入mail,就进行了收件箱,并显示二十封邮件列表。

& help //如果不会使用或者忘记了什么命令,就输入 help 或者 ? 来获取帮助

    Mail   Commands
    t                 打印出信息 【注意】多个信息用空格分开,如 t 1 7
    n                               打印出下一条信息
    e                 编辑信息
    f                 输出信息的头行
    d                 删除信息
    s  file           追加信息到文件file
    u                 不删除某信息
    R                 回复发件人
    r                 回复发件人和本信息所有的收件人
    pre               保留信息在 /usr/spool/mail  1*
    m                    发邮件,多个收件人用空格分开【需要sendmail支持】
    q                               quit, saving unresolved messages in mbox 2*
    x                               quit, do not remove system mailbox
    h                               print out active message headers
    !                               让shell执行某命令,如 !ls 输出ls命令结果
    cd [directory]                  改变目录,这里不用 !cd,但打印当前目录需要 !pwd
    A  consists of integers, ranges of same, or user names separated
    by spaces.  If omitted, Mail uses the last message typed.
    A  consists of user names or aliases separated by spaces.
    Aliases are defined in .mailrc in your home directory.

    1如果阅读过某信息,执行q退出时候,mail会把阅读过的信息“取回”放在 ~/mbox,执行pre后就不取回。如果退出时执行x命令则不会取回信息。
命令示例:
    

    & t 7        //阅读第7封信息,阅读时,按空格键就是翻页,按回车键就是下移一行
    & d 10       //删除第10封信息
    & d 10-100   //删除第10-100封信息
    & top        //显示当前指针所在的邮件的邮件头
    & file       //显示系统邮件所在的文件,以及邮件总数等信息
    & x          //退出mail命令平台,并不保存之前的操作,比如删除邮件
    & q          //退出mail命令平台,保存之前的操作,比如删除已用d删除的邮件,
                 //已阅读邮件会转存到当前用户家目录下的mbox文件中
                 //如果在mbox中删除文件才会彻底删除。
(5)、 将文件当做电子邮件的内容送出

语法:mail -s “主题”用户名@地址< 文件
例如:
mail -s “program” user < file.c 将file.c

当做mail的内容,送至user,主题为program。

(6)、传送电子邮件给本系统用户

语法:mail 用户名

(7)、传送电子邮件至外地用户

语法: mail 用户名@接受地址
.../usr/lib/sendmail -bp
......“Mail queue is empty” ......mail ....

例如:
[email protected]
Subject : mail test
:
键入信文内容
: :
按下Ctrl+D 键或. 键结束正文。
连按两次Ctrl+C键则中断工作,不送此信件。
Cc( Carbon copy) : 复制一份正文,给其他的收信人。

(8)、检查所传送的电子邮件是否送出,或滞留在邮件服务器中

语法:/usr/lib/sendmail -bp
若屏幕显示为“Mail queue is empty” 的信息,表示mail 已送出。
若为其他错误信息,表示电子邮件因故尚未送出。

你可能感兴趣的:(Linux)