天天看点

zabbix 发送邮件脚本(python shell)

附上python邮件发送脚本(对于发送测试邮件不成功的情况可以看下debug中的错误代码提示,如(554, DT:SPM)一般情况是发送的邮件被视为垃圾邮件和病毒邮件,需要调整发件内容):

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

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

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

<code>#python-version:2.7</code>

<code>from</code> <code>email </code><code>import</code> <code>encoders</code>

<code>from</code> <code>email.header </code><code>import</code> <code>Header</code>

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

<code>from</code> <code>email.utils </code><code>import</code> <code>parseaddr, formataddr</code>

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

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

<code>def</code> <code>send_mail(_to_email,_subject,_message):</code>

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

<code>    </code><code>password </code><code>=</code> <code>"your_password"</code>

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

<code>    </code><code>msg </code><code>=</code> <code>MIMEText(_message, </code><code>'plain'</code><code>, </code><code>'utf-8'</code><code>)</code>

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

<code>    </code><code>server </code><code>=</code> <code>smtplib.SMTP(smtp_server, </code><code>25</code><code>)</code>

<code>    </code><code># 使用SSL加密传输</code>

<code>    </code><code>#server = smtplib.SMTP_SSL(smtp_host,994) </code>

<code>    </code><code># 对发送过程开启调试模式</code>

<code>    </code><code>server.set_debuglevel(</code><code>1</code><code>)                  </code>

<code>    </code><code>server.login(from_addr, password)</code>

<code>    </code><code>server.sendmail(from_addr, [_to_email], msg.as_string())</code>

<code>    </code><code>server.quit()</code>

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

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

使用shell 借助mailx 发送邮件脚本, 需要安装dos2unix:

<code>yum </code><code>install</code> <code>mailx dos2unix -y</code>

<code>#!/bin/bash</code>

<code>to=$1</code>

<code>subject=$2</code>

<code>body=$3</code>

<code>echo</code> <code>"$body"</code> <code>&gt;</code><code>/tmp/zabbix_mail</code><code>.log</code>

<code>dos2unix </code><code>/tmp/zabbix_mail</code><code>.log</code>

<code>mail -s </code><code>"$subject"</code> <code>"$to"</code>  <code>&lt; </code><code>/tmp/zabbix_mail</code><code>.log</code>

<code>#cat &lt;&lt;EOF | mail -s "$subject" "$to" </code>

<code>#$body</code>

<code>#EOF</code>

<code>echo</code> <code>"==================="</code> <code>&gt;&gt; </code><code>/tmp/zabbix_mail</code><code>.log</code>

使用mail 命令发送邮件还需要配置/etc/mail.rc 文件,在最后添加邮箱服务器信息:

<code>set</code> <code>[email protected]</code>

<code>set</code> <code>smtp=smtp.126.com</code>

<code>set</code> <code>[email protected]</code>

<code>set</code> <code>smtp-auth-password=password</code>

<code>set</code> <code>smtp-auth=login</code>

 本文转自 酥心糖 51CTO博客,原文链接:http://blog.51cto.com/tryingstuff/1923962