首页 > 代码库 > 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-发邮件脚本