我们领导安排的任务,要求:监控一台服务器,如果某一样数值达到一定程度就报警,(例如警告,严重警告等等)自己想了一下截取数值比较容易,cut、greb或者awk等都能完成,然后就是条件判断,这些都不难,但是发邮件明显存在邮件垃圾服务器的问题,即使被监控服务器搭建的sendmail,也发不出去,收件人的邮件服务器不会接受我们随便搭建的sendmail。那就通过别的方法解决,既然在工作中我们平日使用foxmail或者outlook收发邮件,那有没有在linux命令行模式下工作的邮件用户代理哪?经过查找找到了一款不错的软件msmtp,再结合shell可以很容易的实现邮件发送。接下来就下载使用吧!

1、下载msmtp

wget http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2?

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,例如[email protected]

    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 [email protected]
set envelope_from=yes
envelope_from=yes

保存退出

6、测试mutt与msmtp结合使用

echo "sdfdgdghdg" | mutt -s "ceshixinxi" [email protected]