加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

邮件发送增加次数判断

发布时间:2020-12-17 17:23:33 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 # -*- coding:utf-8 -*-'''sendmail模块判断文件名记录次数发送告警check_key模块记录文件名次数至字典,返回查询文件名对应的次数read_file模块读取

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

# -*- 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,msg.as_string())
                server.close()
                print  '发送成功'
            except Exception,e:
                print str(e)
                print '发送失败,请检查'





if __name__=='__main__':
    mailuser_list=["[email?protected]","[email?protected]"]
    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')

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读