关于linux mail和sendmail的研究与学习

       作为系统与用户的交互工具,mail有着很重要的作用,系统或者程序可以把一些关键事件或消息放在mail中,供用户查看。作为一个linux脚本开发人员和系统维护人员,了解mail命令和使用sendmail发送邮件是必不缺少的前提。

  • 1、mail查看邮件

     

     命令行输入mail

     

    [boco@redhat5 ~]$ mail
    Mail version 8.1 6/6/93.  Type ? for help.
    "/var/spool/mail/boco": 2 messages 2 new
    >N  1 [email protected]   Fri Feb 14 09:02  18/600   "hello boco"
     N  2 [email protected]   Fri Feb 14 11:13  17/567
    & ?
        Mail   Commands
    t <message list>                type messages 显示指定邮件
    n                               goto and type next message
    e <message list>                edit messages
    f <message list>                give head lines of messages
    d <message list>                delete messages  删除指定邮件,可以使用d 2-100 删除第2到100条邮件
    s <message list> file           append messages to file  写到文件中
    u <message list>                undelete messages
    R <message list>                reply to message senders
    r <message list>                reply to message senders and all recipients
    pre <message list>              make messages go back to /usr/spool/mail  
    m <user list>                   mail to specific users
    q                               quit, saving unresolved messages in mbox  保存已看过的邮件到~/mbox 中,若执行pre ,则不保存
    x                               quit, do not remove system mailbox  效果好像没有看过似得
    h                               print out active message headers    显示邮件列表
    !                               shell escape  执行命令
    cd [directory]                  chdir to directory or home if none given
    
    
    
    
    A <message list> consists of integers, ranges of same, or user names separated
    by spaces.  If omitted, Mail uses the last message typed.
    
    A <user list> consists of user names or aliases separated by spaces.
    Aliases are defined in .mailrc in your home directory.
    &
    
    


     

     

    如果邮件被收取放到 ~/mbox 可以这样查看它们:

        # mail -f ~/mbox


     

          

  • 2、发送内部邮件

     

     mail -s "hi, boco, i'm root" boco < 邮件内容
      或者
      mail -s "hi, boco, i'm root" snail
      plz reply me, snail.
      .
      Cc:

     【注意】使用.或者Ctrl+D或者 . 来结束内容输入
     【注意】默认情况下连按两次Ctrl+C键中断工作

  • 3、发送外部邮件

     

     mail -s "fff" [email protected]
     这种是用当前用户名@主机名 作为用户名进行发送的。


     因为mail的还得靠sendmail来投递邮件,根据网上资料可以这样查看sendmail是否有邮件待发,如果没有,说明邮件全都发送出去了。(当然你的sendmail服务要开着

     [root@pps ~]# sendmail -bp
     /var/spool/mqueue is empty
                        Total requests: 0



     网上说用sendmail 可以实现用特定用户名来发送外部邮件,但我在redhat 5.4上面没有试成功。但用下面的方法就可以实现。
     下载新的sendEmail
     sendEmail的主页http://caspian.dotconf.net/menu/Software/SendEmail/
     下载地址http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
     解压,运行
     #tar –zxvf sendEmail-v1.56.tar.gz
     #cd sendEmail-v1.56
     然后给确认确实它具有执行权限

     [root@redhat5 sendEmail-v1.56]# ./sendEmail -f [email protected] -t [email protected] -u "from sendmail" -xu [email protected] -xp ××××(密码) -m happy3 -s smtp.163.com
     Feb 14 13:15:19 redhat5 sendEmail[684]: Email was sent successfully!
     [root@redhat5 sendEmail-v1.56]#



     解释:
    -f 表示发送者的邮箱

    -t 表示接收者的邮箱
    -s 表示SMTP服务器的域名或者ip
    -u 表示邮件的主题
    -xu 表示SMTP验证的用户名
    -xp 表示SMTP验证的密码(不能有特殊字符哟)
    -m 表示邮件的内容

    如果你不带-m参数的话,就会提示你自行输入
    Reading message body from STDIN because the ‘-m’ option was not used.
    If you are manually typing in a message:
    - First line must be received within 60 seconds.
    - End manual input with a CTRL-D on its own line

    输入完成后使用CTRL-D来结束
     
    当然我们也可以将一个文件的内容作为邮件的正文发出去
    那么就可以使用:

    cat 文件名 | /usr/local/bin/sendEmail –f [email protected] –t [email protected] –s smtp.163.com –u "subject” –xu sender –xp 123456 –m happy


     

     


     

  • 你可能感兴趣的:(linux,mail,sendmail,外发邮件)