msmtp 是一个SMTP 客户端。
在默认情况下,它把邮件送给负责发邮件的SMTP 服务器(如:免费邮箱供应商)。
需要手工建立一个含邮件账号信息的配置文件。

    此文章解决zabbix发邮件时,被邮件服务器拒收或者是一些其他原因收不到邮件,而专门配置的。若有不足之处,请多包涵。


一、下载zabbix和msmtp源码包(相关源码包)

          有zabbix2.0和zabbix2.2

     http://yunpan.cn/cLnMGSt7v2X4s  访问密码 956a

二、zabbix安装

    zabbix安装手册在上面链接,此手册网上可以百度到,若有问题请留下问题。

三、源码安装msmtp(安装三部曲)

        

[root@newzqsoft ~]#tar -jxvf msmtp-1.4.30.tar.bz2
         [root@newzqsoft ~]#cd msmtp-1.4.30
         [root@newzqsoft msmtp-1.4.30]#./configure --prefix=/usr/local/msmtp
         [root@newzqsoft msmtp-1.4.30]#make && make install

四、配置msmtp配置文件

        

[root@newzqsoft ~]#cd /usr/local/msmtp/
         [root@newzqsoft msmtp]#mkdir etc
         [root@newzqsoft msmtp]#cat etc/msmtprc
            defaults
            logfile /var/log/msmtp.log
            account default
            host smtp.qq.com               # SMTP邮件服务器地址
            port 25                        # 端口
            from [email protected]               # 发送人的邮件Email,自己的qq邮箱
            auth login
            tls off
            user [email protected]               # 邮件服务器登录账号,自己的qq邮箱
            password 密码                  # 邮件服务器登陆密码

四(一)、QQ邮箱SMTP邮件服务器的配置(如果你用的不是qq邮箱,配置基本相同,但是发邮件不成功时,还是用QQ吧)

            进入qq邮箱,---->设置--->账户

zabbix邮件报警(msmtp代理)_第1张图片

四(二)配置文件可基于用户创建,在用户的家目录下创建配置文件,例如:

zabbix用户:/home/zabbix/.msmtprc

root用户:/root/.msmtprc

配置文件中的msmtp账户要区分开,其他配置相同。

account zabbix或root

-------------------------------注意:此配置和全局配置冲突-----------------------

-----------------------------------献给不细心的朋友们---------------------------


五、创建日志文件        

      

   [root@newzqsoft ~]#touch /var/log/msmtp.log
         [root@newzqsoft ~]#chown zabbix.root msmtp.log
         [root@newzqsoft ~]#chown zabbix.root msmtprc

六、测试发送邮件

         [root@newzqsoft ~]#/usr/local/msmtp/bin/msmtp [email protected]

六(一)报错:

        若发送成功,日志显示OK,但是邮箱没有收到邮件,怎么办?

        解决:你的smtp邮件服务器可能是163的或者是sina的,换成QQ的试试,若还不成,

              请自己查找原因!

七、查看日志是否发送成功

         [root@newzqsoft ~]#tailf /var/log/msmtp.log

wKioL1ZS5T_zZ3IoAAAa2kmwCNE191.png

八、报警脚本(此脚本乃网上摘抄,并验证)

     

   [root@newzqsoft ~]#cat /usr/bin/msmtp.sh
#!/bin/bash
DEBUG=1
if [ $DEBUG -gt 0 ]
then
       exec  2>>/var/log/msmtp.log
       set  -x
fi
FROM='[email protected]'
# Parameters(as passed by Zabbix):
#  $1: Recipient
#  $2: Subject
#  $3: Message
recipient=$1
subject=$2
message=$3
date=`date  --rfc-2822`
sed 's/$/\r/'  <
To:<$recipient>
Subject:$subject
Date:$date 
$message
EOF


九、脚本路径配置,在zabbix_server.conf中添加路径,此步骤很重要,若缺少,找不到脚本。

         AlertScriptsPath=/usr/bin


十、zabbix页面配置


zabbix邮件报警(msmtp代理)_第2张图片

zabbix邮件报警(msmtp代理)_第3张图片

zabbix邮件报警(msmtp代理)_第4张图片

zabbix邮件报警(msmtp代理)_第5张图片

zabbix邮件报警(msmtp代理)_第6张图片

十一、添加要收zabbix邮件的邮箱地址:在zabbix配置文件中有线索。