清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
# -*- coding:utf-8 -*- ''' sendmail模块判断文件名记录次数发送告警 check_key模块记录文件名次数至字典,返回查询文件名对应的次数 read_file模块读取文件至字典 write_file模块将最新记录更新至文件 ''' import smtplib from email.mime.text import MIMEText import sys class MailModel: def __init__(self): self.mail_host = "smtp.126.com" self.mail_user = "lanfeng007" self.mail_pass = "xxxxxxxxxx" self.postfix = "126.com" def write_file(self,what): with open("user.txt", "w") as f: for key,value in what.items(): f.writelines(str(key)+','+str(value)+'\n') f.flush() def read_file(self): with open("user.txt", "r") as f: listStu = {} for k,v in (l.split(',') for l in f) : listStu[k.strip()]=int(v.strip()) return listStu def check_key(self,content): listStu=self.read_file() if content in listStu: listStu[content] = int(listStu[content]) + 1 self.write_file(listStu) return listStu[content] else: listStu[content] = 1 self.write_file(listStu) return listStu[content] def send_mail(self, user_list, sub, content): ''' 根据check_key判断文件名记录次数 大于3次则直接跳过发送输出信息 ''' if self.check_key(content) > 2: print '发送次数超过3次' else: me = "hello"+"<"+self.mail_user+"@"+self.postfix+">" msg = MIMEText(content, _subtype = 'html', _charset = 'utf-8') msg['Subject'] = sub msg['From'] = me msg['To'] = ';'.join(user_list) try: server = smtplib.SMTP() server.connect(self.mail_host) server.login(self.mail_user, self.mail_pass) server.sendmail(me, user_list, msg.as_string()) server.close() print '发送成功' except Exception, e: print str(e) print '发送失败,请检查' if __name__=='__main__': mailuser_list=["369134@qq.com", "xuheng@tyread.com"] title = sys.argv[1] content = sys.argv[2] mail = MailModel() mail.send_mail(mailuser_list,title, content) #mail.send_mail(mailuser_list,'告警文件','/fiodata/DataFiles/outside/NGLogHour/2015-12-09//nginxxf/2015-12-09_192.168.10.194_14.log.zip')