shell 发邮件命令之 mail

来源:互联网 发布:淘宝上怎么卖游戏账号 编辑:程序博客网 时间:2024/05/22 09:07
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">目前最常用的就是mail命令了。 </span>
(sudo apt-get install mailutils)
也可手动下载安装:  http://mailutils.org/download.html 

  1. 简单一行命令实现发送邮件
    echo 'content test' | mail -s "title test" -t  abc@hello.com,efg@hello.com,123@world.com    -a From:aaa@qq.com 
  2. 内容由文件导入
    mail -s "sh mail test"  < file1.txt
  3. 带上附件
     (uuencode file1.txt file1.txt; uuencode file2.txt file2.txt) | mail -s "title test" -t  hello@aaa.com 
    1. 内容 + 附件
      (echo '1111111'; uuencode file1.txt file1.txt; uuencode file2.txt file2.txt) | mail -s "title test" -t  hello@aaa.com 
    2. 多个内容 +多个 附件
      (echo '1111111'; echo '22222222'; uuencode file1.txt file1.txt; uuencode file2.txt file2.txt) | mail -s "title test" -t  hello@aaa.com 


Ref:    http://mars914.iteye.com/blog/1470961


==================================================================================================
Cent OS 系统上: 

  1. 下载安装mailutils
    wget ftp://ftp.gnu.org/gnu/mailutils/mailutils-2.2.tar.gz
    解压进入
    ./configure
    make && make install
  2. yum install -y sendmail
  3. yum install sharutils   # 使用带附件功能
  4. service sendmail start 
  5. 查看sendmail启动没:   ps aux |grep sendmail
  6. 测试:    echo 'content test' | mail -s "title test"  -t aaa@b.com
  7. 此时发觉只能给公司内部发邮件, 如果需要还能给外面的邮箱(比如我的qq邮箱)发邮件则还需要
    vi  /etc/mail/sendmail.mc
    找到包含Addr的这一行:    
    DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=
    127.0.0.1')dnl
    修改Addr=0.0.0.0  ,表明可以连接到任何服务器
  8. End



(data00和data03上已安装上)

ref:   http://blog.csdn.net/shaobingj126/article/details/9813339
========================================================================================================


/etc/mail/sendmail.mc
divert(-1)dnl#-----------------------------------------------------------------------------# $Sendmail: debproto.mc,v 8.14.4 2014-02-11 13:02:08 cowboy Exp $## Copyright (c) 1998-2010 Richard Nelson.  All Rights Reserved.## cf/debian/sendmail.mc.  Generated from sendmail.mc.in by configure.## sendmail.mc prototype config file for building Sendmail 8.14.4## Note: the .in file supports 8.7.6 - 9.0.0, but the generated#file is customized to the version noted above.## This file is used to configure Sendmail for use with Debian systems.## If you modify this file, you will have to regenerate /etc/mail/sendmail.cf# by running this file through the m4 preprocessor via one of the following:#* make   (or make -C /etc/mail)#* sendmailconfig #* m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf# The first two options are preferred as they will also update other files# that depend upon the contents of this file.## The best documentation for this .mc file is:# /usr/share/doc/sendmail-doc/cf.README.gz##-----------------------------------------------------------------------------divert(0)dnl##   Copyright (c) 1998-2005 Richard Nelson.  All Rights Reserved.##  This file is used to configure Sendmail for use with Debian systems.#define(`_USE_ETC_MAIL_')dnlinclude(`/usr/share/sendmail/cf/m4/cf.m4')dnlVERSIONID(`$Id: sendmail.mc, v 8.14.4-4.1ubuntu1 2014-02-11 13:02:08 cowboy Exp $')OSTYPE(`debian')dnlDOMAIN(`debian-mta')dnldnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HEREundefine(`confHOST_STATUS_DIRECTORY')dnl        #DAEMON_HOSTSTATS=dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HEREdnl #dnl # General definesdnl #dnl # SAFE_FILE_ENV: [undefined] If set, sendmail will do a chroot()dnl #into this directory before writing files.dnl #If *all* your user accounts are under /home then use thatdnl #instead - it will prevent any writes outside of /home !dnl #   define(`confSAFE_FILE_ENV',             `')dnldnl #dnl # Daemon options - restrict to servicing LOCALHOST ONLY !!!dnl # Remove `, Addr=' clauses to receive from any interfacednl # If you want to support IPv6, switch the commented/uncommentd linesdnl #FEATURE(`no_default_msa')dnldnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnlDAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=0.0.0.0')dnldnl DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnlDAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnldnl #dnl # Be somewhat anal in what we allowdefine(`confPRIVACY_FLAGS',dnl`needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings')dnldnl #dnl # Define connection throttling and window lengthdefine(`confCONNECTION_RATE_THROTTLE', `15')dnldefine(`confCONNECTION_RATE_WINDOW_SIZE',`10m')dnldnl #dnl # Featuresdnl #dnl # use /etc/mail/local-host-namesFEATURE(`use_cw_file')dnldnl #dnl # The access db is the basis for most of sendmail's checkingFEATURE(`access_db', , `skip')dnldnl #dnl # The greet_pause feature stops some automail bots - but check thednl # provided access db for details on excluding localhosts...FEATURE(`greet_pause', `1000')dnl 1 secondsdnl #dnl # Delay_checks allows sender<->recipient checkingFEATURE(`delay_checks', `friend', `n')dnldnl #dnl # If we get too many bad recipients, slow things down...define(`confBAD_RCPT_THROTTLE',`3')dnldnl #dnl # Stop connections that overflow our concurrent and time connection ratesFEATURE(`conncontrol', `nodelay', `terminate')dnlFEATURE(`ratecontrol', `nodelay', `terminate')dnldnl #dnl # If you're on a dialup link, you should enable this - so sendmaildnl # will not bring up the link (it will queue mail for later)dnl define(`confCON_EXPENSIVE',`True')dnldnl #dnl # Dialup/LAN connection overridesdnl #include(`/etc/mail/m4/dialup.m4')dnlinclude(`/etc/mail/m4/provider.m4')dnldnl #dnl # Default Mailer setupMAILER_DEFINITIONSMAILER(`local')dnlMAILER(`smtp')dnl