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 相关文章推荐
对numpy中轴与维度的理解
Apr 18 Python
Python3.7中安装openCV库的方法
Jul 11 Python
python爬取网易云音乐评论
Nov 16 Python
python使用KNN算法识别手写数字
Apr 25 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
python实现简单聊天室功能 可以私聊
Jul 12 Python
通过实例解析Python return运行原理
Mar 04 Python
python求前n个阶乘的和实例
Apr 02 Python
Python任务调度模块APScheduler使用
Apr 15 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
用python查找统一局域网下ip对应的mac地址
Jan 13 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
我的论坛源代码(九)
2006/10/09 PHP
php 正则表达式小结
2009/08/31 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
解析PHP的session过期设置
2013/06/29 PHP
php事务处理实例详解
2014/07/11 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
struts2 jquery 打造无限层次的树
2009/10/23 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
使用python实现tcp自动重连
2017/07/02 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
使用python求解二次规划的问题
2020/02/29 Python
python实现3D地图可视化
2020/03/25 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
中国跨境电商:Tomtop
2017/03/16 全球购物
Hotels.com越南:酒店预订
2019/10/29 全球购物
Python面试题集
2012/03/08 面试题
《最佳路径》教学反思
2014/04/13 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
司机岗位职责范本
2015/04/10 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
团队拓展训练感想
2015/08/07 职场文书