官方文档中建议保存token,且token是每2小时更新一次。
所以token先保存在本地token.txt文件夹中,设定计划任务每1小时删除一下token.txt。虽然造成了浪费,对于发消息不多的人还是很简单的。
# -*- coding:utf-8 -*- import smtplib,email,sys,datetime from email import encoders from email.header import Header from email.mime.text import MIMEText from email.utils import parseaddr, formataddr class sendmail(object): def zhuanma(self,s): name,addr=parseaddr(s) return formataddr((Header(name,'utf-8').encode(),addr)) def writelog(self,proname,errcont): now=datetime.datetime.now() today=now.strftime('%Y-%m-%d') now=now.strftime('%Y-%m-%d %H:%M:%S') errfile=open(proname+today+'.log','a') errfile.write(now+' '+str(errcont)+' ') errfile.close() def send(self,mailto,mailmessage,mailheader): from_addr='guoyabin@ccln.gov.cn' password='邮箱密码' to_addr=mailto smtp_server='smtp.ym.163.com' msg=MIMEText(mailmessage,'plain','utf-8') msg['From']=self.zhuanma('报警专用<%s>' % from_addr) msg['To']=to_addr msg['Subject']=Header(mailheader,'utf-8').encode() try: server=smtplib.SMTP(smtp_server,25) server.login(from_addr,password) server.sendmail(from_addr,to_addr,msg.as_string()) server.quit() except: info = sys.exc_info() errcont=info[1] self.writelog('mailerror',errcont) print('邮件发送失败') if __name__=='__main__': mail=sendmail() mail.send('guoyabin@ccln.gov.cn','我是邮件内s容','我是邮件标题s')
无耻的求一下赞助