用MSMTP+MUTT搭建日志邮件发送系统
最近组里在搭建nightbuild的自动化编译系统,可是每天早上上班后必须登录服务器查看build结果才行,比较麻烦。要是服务器在每天build以后自动给组里maillist中群发buildlog就好了。首先想到的是用sendmail直接给邮件服务器发送日志邮件,试验了几次发现,除了QQ邮箱和所里的邮箱在推迟了N个小时之后才收到垃圾邮件提醒,其它的测试邮箱都收不到。无奈之下只能申请专门的账号,并利用SMTP协议发送编译日志了。在网上搜了一圈发现MSMTP和MUTT是一对不错的组合。整理如下:
MUTT是unix下基于文本的邮件客户端,MSMTP是基于SMTP协议的客户端,遵循GPL协议,支持SSL、多账户、IPv6等等。
首先下载MSMTP源码:
wget http://nchc.dl.sourceforge.net/project/msmtp/msmtp/1.4.27/msmtp-1.4.27.tar.bz2
解压:
tar xvf msmtp-1.4.27.tar.bz2
编译:
1 cd msmtp-1.4.27 2 ./configure --prefix=/usr/local/msmtp 3 make 4 make install
这时MSMTP已经安装完毕,默认的配置文件路径是:/usr/local/msmtp/etc/msmtprc(不存在的话就创建一个),内容如下:
1 account default 2 tls off 3 host smtp.163.com #smtp服务器地址,这里是163的服务器地址 4 port 25 #端口号 5 from test@163.com #发件人邮箱地址 6 auth login 7 user test@163.com #邮箱用户名 8 password pwd #邮箱密码 9 logfile /usr/local/msmtp/msmtp.log #日志文件地址,不存在的话可以touch一个新的文件
此时MSMTP客户端应该可以用了,测试一下:
/usr/local/msmtp/bin/msmtp dest@163.com
输入一些字符,ctrl+D结束,这时dest@163.com可以收到相应的邮件,可以登录查看一下。
下一步需要安装MUTT,在linux mint系统下sudo apt-get install mutt即可。然后编辑MUTT的配置文件:
sudo vim /etc/Muttrc
确保如下选项都被正确设置:
1 set sendmail="/usr/local/msmtp/bin/msmtp" #你的msmtp命令路径 2 set use_from=yes 3 set realname="test@163.com" 4 set editor="vim"
保存退出,OK了。
在shell里测试一下:
cat aaa.txt | mutt -s "主题名" bbb@163.com -a ccc.file
其中,aaa.txt 是邮件正文内容,bbb@163.com是收件方地址,ccc.file是邮件附件(要是没有可以不加)