天天看點

zabbix郵件報警腳本

Zabbix郵件報警腳本

    對于目前的營運商來說,25端口基本上被禁用了,隻能使用ssl/tls加密協定來發收郵件,對于zabbix來說郵件報警還是比較常用的,下面為報警腳本,親測時可以正常收到郵件的,可以先進行測試是否能正常收到郵件在正式配置到zabbix上。以163郵件為例:

<code>[root@localhost ~]</code><code># cat zabbix_mail.py </code>

<code>#!/usr/bin/python</code>

<code># coding=utf-8</code>

<code>#zabiix 郵件報警腳本</code>

<code>#測試方法:python zabbix_mail.py [email protected] test test</code>

<code>#能正常發送郵件說明成功 </code>

<code>import</code> <code>smtplib</code>

<code>import</code> <code>sys</code>

<code>from email.mime.text </code><code>import</code> <code>MIMEText</code>

<code> </code> 

<code>class send_mail():</code>

<code>    </code><code>mail_host=</code><code>"smtp.163.com"</code>

<code>    </code><code>mail_user=</code><code>"[email protected]"</code>

<code>#注:此地方的密碼為POP3/SMTP/IMAP用戶端授權的授權碼,不是郵箱的登入密碼</code>

<code>    </code><code>mail_pass=</code><code>"XXXXXXXXXX"</code>

<code>    </code><code>mail_postfix=</code><code>"163.com"</code>

<code>    </code><code>def __init__(self,sub,content):</code>

<code>        </code><code>self.me=</code><code>"Zabbix-Alter"</code><code>+</code><code>"&lt;"</code><code>+self.mail_user+</code><code>"@"</code><code>+self.mail_postfix+</code><code>"&gt;"</code>

<code>        </code><code>self.msg = MIMEText(content,_subtype=</code><code>'html'</code><code>,_charset=</code><code>'utf-8'</code><code>)</code>

<code>        </code><code>self.msg[</code><code>'From'</code><code>] = self.me</code>

<code>        </code><code>self.msg[</code><code>'Subject'</code><code>] = sub</code>

<code>    </code><code>def sendMessage(self,user):</code>

<code>        </code><code>self.msg[</code><code>'To'</code><code>] = </code><code>";"</code><code>.</code><code>join</code><code>(user)</code>

<code>        </code><code>try:</code>

<code>            </code><code>s = smtplib.SMTP_SSL(host=self.mail_host,port=465)</code>

<code>            </code><code>s.login(self.mail_user,self.mail_pass)</code>

<code>            </code><code>s.sendmail(self.me, user, self.msg.as_string())  </code>

<code>#發送郵件</code>

<code>            </code><code>s.close()</code>

<code>        </code><code>except Exception, e:</code>

<code>            </code><code>print str(e)</code>

<code>if</code> <code>__name__ == </code><code>'__main__'</code><code>:</code>

<code>    </code><code>mailto_list=[]</code>

<code>    </code><code>mailto_list.append(sys.argv[1])</code>

<code>    </code><code>s = send_mail(sys.argv[2],sys.argv[3])</code>

<code>    </code><code>s.sendMessage(mailto_list)</code>

<code></code>

本文轉自 zhangguangyi 51CTO部落格,原文連結:http://blog.51cto.com/bosszhang/2055894