通过python实现程序报错邮件


1
from email.header import Header 2 from email.mime.text import MIMEText 3 from email.utils import parseaddr,formataddr 4 import smtplib 5 import time 6 7 def _format_addr(s): 8 name,addr = parseaddr(s) 9 return formataddr((Header(name,'utf-8').encode(),addr)) 10 11 def getContent(resouce, final): 12 f = open(resouce, 'rb') 13 finalfile = open(final, 'wb') 14 try: 15 for line in f: 16 if "ERROR" in line: 17 finalfile.write(line) 18 finally: 19 f.close() 20 finalfile.close() 21 22 if __name__ == '__main__': 23 from_addr = '***' #发件地址 24 password = '***'    #密码 25 to_addr = '***'    #收件地址 26 smtp_server = '***'    #发件的服务器,例如 smtp.163.com 27 sourcedir = "update_cat.py.log" #要分析的日志 28 objectdir = "error_log.txt"      #目标日志 29 while(True): 30 getContent(sourcedir, objectdir) 31 msg = MIMEText(open(objectdir, 'r').read(), 'utf-8') 32 msg['From'] = _format_addr('programer error <%s>' % from_addr) 33 msg['To'] = _format_addr('administrator <%s>' % to_addr) 34 msg['Subject'] = Header('error information', 'utf-8').encode() 35 36 server = smtplib.SMTP(smtp_server,25) 37 server.login(from_addr,password) 38 server.sendmail(from_addr,[to_addr],msg.as_string()) 39 server.quit() 40 time.sleep(3600)

 

posted on 2018-02-24 11:37  特立独行的十楼  阅读(171)  评论(0编辑  收藏  举报

导航