首页 > 代码库 > python-发邮件脚本

python-发邮件脚本

折腾nagios发邮件好几天,终于完成,我的系统环境是ubuntu12.04,安装postfix服务,先贴上脚本,如下:

#!/usr/bin/env python
#-*- coding:utf-8 -*-
‘‘‘ from: 改成你的邮箱地址 ‘‘‘
import datetime,smtplib,string,sys
from email.Header import Header
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart

def send_mail(to_addr):

    if sys.argv[1] == "host":
        text=string.join((
          "******** 主机问题 ********\n\n",
          "通知类型: %s\n\n" %sys.argv[2],
          "主机名: %s\n\n" %sys.argv[3],
          "IP地址: %s\n\n" %sys.argv[4],
          "机器状态: %s\n\n" %sys.argv[5],
          "日期: %s\n\n" %sys.argv[6],
          "其他信息: %s\n\n" %sys.argv[7]),"\r\n")
    else:
        text=string.join((
          "******** 进程/服务问题 ********\n\n",
          "通知类型: %s\n\n" %sys.argv[1],
          "服务名: %s\n\n" %sys.argv[2],
          "主机名: %s\n\n" %sys.argv[3],
          "IP地址: %s\n\n" %sys.argv[4],
          "机器状态: %s\n\n" %sys.argv[5],
          "日期: %s\n\n" %sys.argv[6],
          "其他信息: %s\n\n" %sys.argv[7]),"\r\n")

    msg = MIMEMultipart()
    msg[‘to‘] = to_addr
    msg[‘from‘] = ‘xxx@sina.com‘
    msg[‘subject‘] = Header(‘检测ssh端口结果(‘ + str(datetime.date.today()) + ‘)‘, ‘utf-8‘)
    text_msg = MIMEText(text,‘plain‘,‘utf-8‘)
    msg.attach(text_msg)
    server = smtplib.SMTP(‘smtp.sina.com‘)
    server.login(‘xxx@sina.com‘,‘xxxxxx‘)
    server.sendmail(msg[‘from‘],msg[‘to‘],msg.as_string())
    server.close()

if __name__ == ‘__main__‘:
    addr_list=[‘xxx@139.com‘,‘xxx@blingstorm.com.cn‘,‘xxx@blingstorm.com.cn‘]
    for i in range(len(addr_list)):
        send_mail(addr_list[i])


备注:

1、使用MIMEMultipart方法创建可以包含附件的MIME对象;

2、使用MIMEText方法创建邮件内容的对象;

3、使用smtplib.SMTP方法实现邮件系统的登录和发送邮件;

4、邮件内容从nagios自带的宏变量参数一一获取。

本文出自 “蜗牛的家” 博客,请务必保留此出处http://winters.blog.51cto.com/5617866/1590188

python-发邮件脚本