python用yagmail库做邮件推送,以及解决中文乱码问题2020.7.15

2022-08-11 18:00:54 浏览数 (1)

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&timestamp=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()

0 人点赞