• python3发邮件脚本


    官方文档中建议保存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')
    

      

     

      

    无耻的求一下赞助

  • 相关阅读:
    linux 定时任务
    fastcgi_param 详解
    MVC 中 注册不成功 或其他操作不成功 提示办法
    关于MVC 中EF调用存储过程
    关于Mvc的分页写法
    关于Linq翻译Inner join ,Left join (本文为转载)
    GridView自定义自增长的 序号 列
    asp.net操作GridView添删改查的两种方法 及 光棒效果
    Jquery编历数组
    在客户与服务器之间传递二进制结构
  • 原文地址:https://www.cnblogs.com/guoyabin/p/7116794.html
Copyright © 2020-2023  润新知