Python自動發(fā)送QQ郵件-解決中文亂碼
為了解放生產(chǎn)力(摸魚),最近花時間完成了每日接報Excel表數(shù)據(jù)和Word文檔的解析、報告的生成、QQ郵箱外發(fā)的自動化工作。由于在QQ郵箱外發(fā)時碰見中文亂碼的問題,記錄下解決方法(標有注釋的部分自行修改就可以直接使用了)~??? ?

import smtplib
import email
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
mail_host = 'smtp.qq.com'
#發(fā)件人
mail_sender = '4*****@qq.com'
#發(fā)件人授權(quán)碼
mail_license = 'tq*****'
#收件人:對應(yīng)修改,可以有多個
mail_receivers = ['1*****@qq.com']
mm = MIMEMultipart('related')
#發(fā)、收件人
mm['from'] = 'K***<%s>'%mail_sender
mm['to'] = 'Z***<%s>'%mail_receivers
#郵件主題
subject_content = '每日報告'
mm['subject'] = Header(subject_content,'utf-8')
#添加正文文本
body_content = 'Z**,每日報告部分請在附件中查收'
message_text = MIMEText(body_content,'plain','utf-8')
mm.attach(message_text)
#附件,解決亂碼
attach_file = '測試報告.docx'
atta = MIMEText(open(attach_file, 'rb').read(), 'base64', 'utf-8')
atta['Content-Type'] = 'application/octet-stream'
atta.add_header('Content-Disposition', 'attachment', filename=('utf-8', '', attach_file))
mm.attach(atta)
stp = smtplib.SMTP()
# 設(shè)置發(fā)件人郵箱的域名和端口,QQ端口地址為465或587
stp.connect(mail_host, 587)??
stp.set_debuglevel(1)
stp.login(mail_sender,mail_license)
stp.sendmail(mail_sender, mail_receivers, mm.as_string())
print("郵件發(fā)送成功")
stp.quit()

拉了個定時任務(wù),每天自動完成并發(fā)送。再也不用晚上一邊打游戲一邊趕報告了,感覺又是美好的一天~
