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)+'\n')
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')
无耻的求一下赞助



浙公网安备 33010602011771号