作者:邓聪聪
为了自动化接收服务端的文件备份信息,利用mutt+msmtp在shell环境中发送电子邮件,轻松高效的完成运维工作。
下载msmtp
wget http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2?modtime=1217206451&big_mirror=0
解压源码安装4步走
tar -xf msmtp-1.4..tar.bz #解压 --安装gcc,会用到编译安装
./configure --prefix=/usr/local/msmtp
make
make install
配置msmtp
cd /usr/local/msmtp/
mkdir etc #配置文件目录和配置文件需自己建
cd etc
[root@bogon etc]# more /usr/local/msmtp/etc/msmtprc
defaults
logfile /var/log/mmlog #输出错误日志文件路径
account #邮箱类型 --这里以163为例
host smtp..com #邮箱服务器地址
from uername@.com #要从哪个邮箱发出
auth login
user uername@163 #邮箱用户名
password pwd #邮箱密码 (建议使用邮箱自带的授权密码)
account default: #邮箱类型
安装mutt并配置
yum install mutt -y
[root@bogon etc]#cat /etc/Muttrc #配置文件设置发件人
source /etc/Muttrc.local set sendmail="/usr/local/msmtp/bin/msmtp" #msmtp命令的绝对路径
set use_from=yes
set realname="root" #发件人
set editor="vim"
set copy=no
测试发件
echo | mutt -s "测试" m18001131583@.com < /etc/hosts
“内容” --主题 --收件人 --绝对路径下的文件内容
故障锦集:
安装msmtp的时候make出现如下错误;
tls.c: In function ‘tls_check_cert’:
tls.c::: error: unknown type name ‘STACK’
STACK *subj_alt_names;
^
tls.c: In function ‘tls_init’:
tls.c::: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
ssl_method = force_sslv3 ? SSLv3_client_method() : SSLv23_client_method();
^
make[]: *** [tls.o] Error
make[]: Leaving directory `/root/msmtp-1.4./src'
make[]: *** [all-recursive] Error
make[]: Leaving directory `/root/msmtp-1.4.'
make: *** [all] Error
解决办法;编译安装时关掉ssl的认证
./configure --prefix=/usr/local/msmtp --with-ssl=no