这几天领导让我部署开发部门写的一个脚本,需要把脚本生成的附件通过email发到他的邮箱里面去。那就开始干吧,因为之前一直用mail 命令来发邮件,可是这次行不通了。因为要带附件。有人告诉我mail 命令也能带附件,可是我怎么也没找到相关的参数。可又不想搭个mail服务器,因为闲麻烦。
   于是就开始在网上找简单又有效的命令行客户端,还真让我找到了。那就是MUTT+MSMTP,看到网上好多文章,拿出几个来照着做了做,结果报各种各样的问题。
还是自己看看具体每个参数作用吧!
   经过一番整理,去掉些没用的参数后测试成功。现在把具体的操作步骤写在下面:
我的目的其实很简单,就是利用MUTT和MSMTP 登录163的邮件服务器发邮件。为什么非要登录163邮箱呢?因为我测试过qq邮箱、yahoo还有sina的邮箱都发布出去,只有163的一连就通了,我估计是邮箱设置里验证的关系,也不想去深研究他了。下面给出具体步骤
首先去163申请个免费邮箱,收费免费都一样
下载MSMTP
 

 
    
  1. wget http://nchc.dl.sourceforge.net/sourceforge/msmtp/msmtp-1.4.17.tar.bz2 
  2. tar xvf msmtp-1.4.17.tar.bz2 
  3. cd msmtp-1.4.17 
  4. ./configure --prefix=/usr/local/msmtp 
  5. make 
  6. make install 
  7. cd /usr/local/msmtp/ 
  8. mkdir etc #配置文件目录和配置文件都要自己建 
  9. cd etc 



 

 
    
  1. vim msmtprc #手动创建配置文件 
  2. account default 
  3. host smtp.163.com #你的发送邮件服务器 
  4. port 25 
  5. from [email protected] #要从哪个邮箱发出 
  6. auth login #这里如果使用on的话会报 "msmtp: cannot use a secure authentication method"错误 
  7. tls off 
  8. user [email protected] #邮箱用户名 
  9. password xmanufo  #邮箱密码,这里可是明文的,如果你觉得不安全可以把文件改为600属性 
  10. logfile /var/log/mmlog 


保存退出。
简单测试一下
/usr/local/msmtp/bin/msmtp [email protected]
随便输入一些内容用ctrl+d结束。然后到邮箱看看有没有收到,如果这里提示错误按照错误代码找原因,或者看看上面的日志文件

下面开始安装 MUTT 如果是CentOS的话直接用yum就好了
yum install mutt
安装完成后要手动给他建立一个配置文件,

 

 
    
  1. vim /etc/Muttrc 
  2. set sendmail="/usr/local/msmtp/bin/msmtp" #你的msmtp命令路径 
  3. set use_from=yes 
  4. set realname="[email protected]" 
  5. set editor="vim" 


简单的4行就可以了
好了,让我们来测试一下吧!
echo "testmail" | mutt -s "测试" -a /etc/hosts [email protected]
这里的-a 是指添加附件,如果是多个附件的话就 多加几个 -a 文件名
还可以这样
mutt -s "测试" -a /etc/hosts -a /etc/apple [email protected] < /tmp/imax.txt
这个的意思就是以 /tmp/imax.txt 文件的内容作为邮件内容。
好了,就这么简单