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