我们领导安排的任务,要求:监控一台服务器,如果某一样数值达到一定程度就报警,(例如警告,严重警告等等)自己想了一下截取数值比较容易,cut、greb或者awk等都能完成,然后就是条件判断,这些都不难,但是发邮件明显存在邮件垃圾服务器的问题,即使被监控服务器搭建的sendmail,也发不出去,收件人的邮件服务器不会接受我们随便搭建的sendmail。那就通过别的方法解决,既然在工作中我们平日使用foxmail或者outlook收发邮件,那有没有在linux命令行模式下工作的邮件用户代理哪?经过查找找到了一款不错的软件msmtp,再结合shell可以很容易的实现邮件发送。接下来就下载使用吧!
1、下载msmtp
wget ?
2、解压并安装
tar jxvf msmtp-1.4.16.tar.bz2
cd msmtp-1.4.16
./configure --prefix=/opt/msmtp
make
make install
3、配置
自己创建配置文件
mkdir /opt/msmtp/etc/ ##创建配置文件目录
touch /op/msmtp/etc/msmtprc ##创建配置文件
vi $! ##编辑配置文件
# Set default values for all following accounts.
defaults
# The SMTP server of the provider.
account test
host yourmailserverFQDN ##发送邮件服务器名称,例如mail.163.com
from yourmailfullname ##发送的邮件Email,例如zhangsan@163.com
auth login
user yourcount ##邮件服务器登录账号,163邮件的登陆账号
password yourpasswd ##邮件服务器登陆密码,163邮件的登录密码
# Set a default account
account default : test
保存退出
4、测试msmtp的简单使用
/opt/msmtp/bin/msmtp 目标邮件地址 ## 当然也可以是前面配置文件自己的邮箱,自己给自己发
输入字符,然后按ctrl+d发送邮件
5、在Mutt 中使用msmtp (Using msmtp with Mutt)
把下面几行加到Mutt 配置文件中去
vi /etc/Muttrc
set sendmail=/path/to/msmtp
set use_from=yes
set realname=Your Name
set from=you@example.com
set envelope_from=yes
envelope_from=yes
保存退出
6、测试mutt与msmtp结合使用
echo "sdfdgdghdg" | mutt -s "ceshixinxi" zhangsan@163.com