zabbix邮件报警脚本

Zabbix邮件报警脚本

Zabbix邮件报警脚本

    对于目前的运营商来说,25端口基本上被禁用了,只能使用ssl/tls加密协议来发收邮件,对于zabbix来说邮件报警还是比较常用的,下面为报警脚本,亲测时可以正常收到邮件的,可以先进行测试是否能正常收到邮件在正式配置到zabbix上。以163邮件为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[root@localhost ~]# cat zabbix_mail.py 
#!/usr/bin/python
# coding=utf-8
#zabiix 邮件报警脚本
#测试方法:python zabbix_mail.py XXXXXXX@163.com test test
#能正常发送邮件说明成功 
import smtplib
import sys
from email.mime.text import MIMEText
  
class send_mail():
    mail_host="smtp.163.com"
    mail_user="XXXXXXXXXX@163.com"
#注:此地方的密码为POP3/SMTP/IMAP客户端授权的授权码,不是邮箱的登录密码
    mail_pass="XXXXXXXXXX"
    mail_postfix="163.com"
    def __init__(self,sub,content):
        self.me="Zabbix-Alter"+"<"+self.mail_user+"@"+self.mail_postfix+">"
        self.msg = MIMEText(content,_subtype='html',_charset='utf-8')
        self.msg['From'] = self.me
        self.msg['Subject'] = sub
  
    def sendMessage(self,user):
        self.msg['To'] = ";".join(user)
        try:
            s = smtplib.SMTP_SSL(host=self.mail_host,port=465)
            s.login(self.mail_user,self.mail_pass)
            s.sendmail(self.me, user, self.msg.as_string())  
#发送邮件
            s.close()
        except Exception, e:
            print str(e)
  
  
if __name__ == '__main__':
    mailto_list=[]
    mailto_list.append(sys.argv[1])
    s = send_mail(sys.argv[2],sys.argv[3])
    s.sendMessage(mailto_list)



本文转自 zhangguangyi 51CTO博客,原文链接:http://blog.51cto.com/bosszhang/2055894
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值