python实现自动发送报警监控邮件


Posted in Python onJune 21, 2018

本文实例为大家分享了python自动发送报警监控邮件 的具体代码,供大家参考,具体内容如下

因为有一些日常任务需要每日检查日否执行正确,所以需要一个报警监控的机制,这个需要你指定你发送的邮箱和你接收的邮箱,就可以使用了。

这四个需要填写一下,我们使用的qq企业邮箱所以host为smtp.exmail.qq.com

mail_host="" 
mail_user="" 
mail_pass="" 
mail_postfix="" 

使用如下,也可以增加附件使用。

python send_email.py xxxxxxx@qq.com,xxxxxx@qq.com test数据 /home/data/test/sendfile

python代码:

#!/usr/bin/env python 
# -*- coding: utf-8 -*-  
import smtplib 
import sys 
from email.mime.text import MIMEText 
import linecache 
import email 
import os 
 
############# 
# email send list 
#mailto_list=[""] 
##################### 
# set email service host,user,pass word,postfix 
mail_host="" 
mail_user="" 
mail_pass="" 
mail_postfix="" 
###################### 
 
def transfer_utf8_to_gb2312(file_name): 
  f=open(file_name) 
  s=f.read() 
  f.close() 
  u=s.decode("utf-8") 
  s=u.encode("gb2312") 
  f=open(file_name,"w"); 
  f.write(s) 
 
 
def send_mail(to_list,sub,content_file_name): 
  me=mail_user+"<"+mail_user+"@"+mail_postfix+">" 
  msg = email.MIMEMultipart.MIMEMultipart()  
  content = open(content_file_name.encode("utf-8"), 'rb') 
  content_msg = MIMEText(content.read(),"plain","utf-8") 
  msg.attach(content_msg)  
  msg['Subject'] = sub 
  msg['From'] = me 
  msg['To'] = ";".join(to_list) 
  try: 
    s = smtplib.SMTP() 
    s.connect(mail_host) 
    s.login(mail_user+"@"+mail_postfix,mail_pass) 
    s.sendmail(me, to_list, msg.as_string()) 
    s.close() 
    return True 
  except Exception, e: 
    print "error:",str(e) 
    return False 
 
def send_mail_with_attachment(to_list,sub,content_file_name,attachment_file_name): 
  me=mail_user+"<"+mail_user+"@"+mail_postfix+">" 
  msg = email.MIMEMultipart.MIMEMultipart()  
  content = open(content_file_name.encode("utf-8"), 'rb') 
  content_msg = MIMEText(content.read(),"plain","utf-8") 
  msg.attach(content_msg)  
  for tmp_attachment_file_name in attachment_file_name.split(","): 
    contype = 'application/octet-stream' 
    maintype, subtype = contype.split('/', 1) 
    file_data = open(tmp_attachment_file_name.encode("utf-8"), 'rb') 
    file_msg = email.MIMEBase.MIMEBase(maintype, subtype) 
    file_msg.set_payload(file_data.read()) 
    file_data.close( ) 
    email.Encoders.encode_base64(file_msg) 
    basename = os.path.basename(tmp_attachment_file_name) 
    file_msg.add_header('Content-Disposition', 'attachment', filename = basename.encode("utf-8")) 
    msg.attach(file_msg) 
  msg['Subject'] = sub 
  msg['From'] = me 
  msg['To'] = ";".join(to_list) 
  try: 
    s = smtplib.SMTP() 
    s.connect(mail_host) 
    s.login(mail_user+"@"+mail_postfix,mail_pass) 
    s.sendmail(me, to_list, msg.as_string()) 
    s.close() 
    return True 
  except Exception, e: 
    print "error:",str(e) 
    return False 
 
def print_usage(): 
    print "Usage:  " 
    print "   %s email_send_list(xxx@163.com,xxx@qq.com,...) subject content_file_name" % (sys.argv[0]) 
    print "   %s email_send_list(xxx@163.com,xxx@qq.com,...) subject content_file_name attachment_file_name(file_name1,file_name2,...) if_transform_attachment_to_gb2312(yes or not)" % (sys.argv[0]) 
 
######Start from here######### 
if __name__ == '__main__': 
  reload(sys) 
  sys.setdefaultencoding('utf8') 
  if len(sys.argv) == 6: 
    send_list = sys.argv[1].split(",") 
    subject = unicode(sys.argv[2],"utf-8") 
    content_file_name = unicode(sys.argv[3],"utf-8") 
    attachment_file_name = unicode(sys.argv[4],"utf-8") 
    if(sys.argv[5] == "yes"): 
      transfer_utf8_to_gb2312(attachment_file_name.decode("utf-8")) 
    elif(sys.argv[5] == "not"): 
      pass  
    else: 
      print_usage()  
 
    if send_mail_with_attachment(send_list,subject,content_file_name,attachment_file_name): 
      print "Send email success!" 
    else: 
      print "Send email fail!" 
      sys.exit(1) 
  elif len(sys.argv) == 4: 
    send_list = sys.argv[1].split(",") 
    subject = unicode(sys.argv[2],"utf-8") 
    content_file_name = unicode(sys.argv[3],"utf-8") 
 
    if send_mail(send_list,subject,content_file_name): 
      print "Send email success!" 
    else: 
      print "Send email fail!" 
      sys.exit(1) 
  else: 
    print_usage()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现网站的模拟登录
Jan 04 Python
python+selenium+autoit实现文件上传功能
Aug 23 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
Django框架模板介绍
Jan 15 Python
解决Python 使用h5py加载文件,看不到keys()的问题
Feb 08 Python
Python地图绘制实操详解
Mar 04 Python
Python流程控制 if else实现解析
Sep 02 Python
TensorFlow2.0:张量的合并与分割实例
Jan 19 Python
jupyter notebook 参数传递给shell命令行实例
Apr 10 Python
Python命名空间namespace及作用域原理解析
Jun 05 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
Sep 20 Python
python实现图片九宫格分割的示例
Apr 25 Python
Python中list查询及所需时间计算操作示例
Jun 21 #Python
python监控文件并且发送告警邮件
Jun 21 #Python
python3实现磁盘空间监控
Jun 21 #Python
Python实现的远程登录windows系统功能示例
Jun 21 #Python
python3监控CentOS磁盘空间脚本
Jun 21 #Python
python实现猜单词小游戏
May 22 #Python
python2.x实现人民币转大写人民币
Jun 20 #Python
You might like
PHP+DBM的同学录程序(3)
2006/10/09 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
js 左右悬浮对联广告代码示例
2014/12/12 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
Javascript实现单选框效果
2020/12/09 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
Python中单、双下划线的区别总结
2017/12/01 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
python实现KNN分类算法
2019/10/16 Python
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
大学生标准推荐信范文
2013/11/25 职场文书
玲玲的画教学反思
2014/02/04 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
客房领班岗位职责
2015/02/11 职场文书
医院党建工作总结2015
2015/05/26 职场文书
无工作证明怎么写
2015/06/15 职场文书
观后感格式
2015/06/19 职场文书
新娘婚礼答谢词
2015/09/29 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
Python Matplotlib库实现画局部图
2021/11/17 Python