天天看点

zabbix 发送不了邮件

网上找到一个脚本sendmail.py

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

<code># -*- coding:utf-8 -*-</code>

<code>  </code> 

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

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

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

<code>import</code> <code>time</code>

<code>#reload(sys)</code>

<code>#sys.setdefaultencoding('utf8')</code>

<code>current_time</code><code>=</code><code>time.strftime(</code><code>'%Y-%m-%d%H:%M'</code><code>,time.localtime(time.time()))</code>

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

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

<code>mail_pwd </code><code>=</code> <code>'xxxxxx'</code>

<code>def</code> <code>send_email( content,mailto, get_sub ):</code>

<code>    </code><code>#msg = MIMEText( content.encode('utf8'),_subtype = 'html', _charset = 'utf8')</code>

<code>    </code><code>msg </code><code>=</code> <code>MIMEText(content,_subtype</code><code>=</code><code>'plain'</code><code>,_charset</code><code>=</code><code>'utf8'</code><code>)</code>

<code>    </code><code>msg[</code><code>'From'</code><code>] </code><code>=</code> <code>mail_user</code>

<code>    </code><code>msg[</code><code>'Subject'</code><code>] </code><code>=</code><code>get_sub</code>

<code>    </code><code>msg[</code><code>'To'</code><code>] </code><code>=</code> <code>","</code><code>.join( mailto )</code>

<code>    </code> 

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

<code>        </code><code>s </code><code>=</code> <code>smtplib.SMTP(mail_host, </code><code>25</code><code>)       </code>

<code>        </code><code>s.login(mail_user, mail_pwd )</code>

<code>        </code><code>s.sendmail(mail_user, mailto,msg.as_string())</code>

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

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

<code>        </code><code>print</code> <code>'Exception: '</code><code>, e</code>

<code>title</code><code>=</code><code>sys.argv[</code><code>2</code><code>]</code>

<code>cont</code><code>=</code><code>"""</code>

<code>---------------------------------</code>

<code>摘要:  %s</code>

<code>时间:  %s</code>

<code>"""</code><code>%</code><code>(sys.argv[</code><code>3</code><code>],current_time)</code>

<code>to_list </code><code>=</code> <code>[</code>

<code>         </code><code>'%s'</code><code>%</code><code>(sys.argv[</code><code>1</code><code>]),</code>

<code>        </code><code>]</code>

<code>'''withopen('/tmp/sendmail_qs.log','ab') as f:</code>

<code>        </code><code>f.write('%s  Receive address:  %s Title: %s \n'%(current_time,sys.argv[1],title))</code>

<code>'''</code>

<code>send_email( cont, to_list,title)</code>

sendmail.py脚本权限 755或者777,owner zabbix

测试 ./sendmail.py $to $subject $messages

2.添加脚本

<a href="http://s3.51cto.com/wyfs02/M01/5D/DB/wKioL1Ul8qvxFZIIAAJXoLqsIC0290.jpg" target="_blank"></a>

3.设置触发条件

<a href="http://s3.51cto.com/wyfs02/M02/5D/DF/wKiom1Ul8BnB2THeAAHVqpHxdUg997.jpg" target="_blank"></a>

4.设置故障恢复后的报警时间,一般是间隔5分钟,你可以修改为60s

<a href="http://s3.51cto.com/wyfs02/M01/5D/DF/wKiom1Ul8E-RzsInAAJzPClP9yw457.jpg" target="_blank"></a>

本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1630366,如需转载请自行联系原作者