python用yagmail库做邮件推送,以及解决中文乱码问题2020.7.15
数据分析全流程中,做完的数据分析成果往往要发给领导,就想把邮件推送功能一起做了。
1、资料链接
https://zhuanlan.zhihu.com/p/48742812
https://zhuanlan.zhihu.com/p/55797461
https://mp.weixin.qq.com/s?src=11×tamp=1594780194&ver=2461&signature=d4HVxQzSe3Y4OqUdmUxmFkFNwtinuKbMusXmqIARJGL5mSCQFZPTGm6uFlqGa19eSB78O3pR2eOyOJUhZy1FbkegmVxhhhe9YMw8*djZJE8wLcfOj*pcI3hBeU9SRQ2q&new=1
2、开通SMTP服务,获取:授权码
3、复制代码
# -*- coding: utf-8 -*-
import yagmail
# 连接服务器
# 用户名、授权码、服务器地址
yag_server = yagmail.SMTP(user='xxxx@qq.com', password='xxxxscgdi', host='smtp.qq.com')
# 发送对象列表
email_to = ['xxx@qq.com', ]
email_title = '测试报告'
email_content = "这是测试报告的具体内容"
# 附件列表
email_attachments = ['./attachments/report.png', ]
# 发送邮件
yag_server.send(email_to, email_title, email_content, email_attachments)
# 关闭连接
yag_server.close()
4、报错
SMTPAuthenticationError: (535, b'Login Fail. Please enter your authorization code to login. More information in http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256')
重新注册授权码完成
5、报错
'./attachments/report.png' is not a valid filepath
'/附件/报告.png“”不是有效的文件路径
修改路径
6、错误,中文乱码
(1)https://www.zhihu.com/question/361873510/answer/943487834
python邮件yagmail库好用,但中文附件名乱码怎么破?
gbk就好了
yagmail.SMTP初始化的时候有个encoding参数,设置为gbk就好了
yag_server = yagmail.SMTP(user='xxxx@qq.com', password='xxxxefdbda', host='smtp.qq.com',encoding='GBK')
搞定。
附上代码
import yagmail
# 连接服务器
# 用户名、授权码、服务器地址
yag_server = yagmail.SMTP(user='xxxx@qq.com', password='xxxxmdadefdbda', host='smtp.qq.com',encoding='GBK')
# 发送对象列表
email_to = ['xxxx@qq.com', ]
email_title = '测试报告'
email_content = "这是测试报告的具体内容"
# 附件列表
email_attachments = ['C:/Users/Administrator/Desktop/财务数据展示图形样例2020.6.12.png', ]
# 发送邮件
yag_server.send(email_to, email_title, email_content, email_attachments)
# 关闭连接
yag_server.close()