Django 邮件推送 解决附件中文名字乱码
Posted logicalsky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 邮件推送 解决附件中文名字乱码相关的知识,希望对你有一定的参考价值。
Django邮件功能,详情可看官方文档(https://docs.djangoproject.com/en/1.10/topics/email/).
最近做这个功能时遇到的问题,发送附件,收到后中文名字乱码,解决方法如下:
需要对文件名在header中进行编码处理,否则,收到的附件中文名字会乱码.
1 from django.core.mail import EmailMessage 2 from email.header import make_header 3 4 email = EmailMessage(subject, content, from_email, to) 5 # 文件路径 6 address = ‘xxxxxxx‘ 7 text = open(address, ‘rb‘).read() 8 file_name = os.path.basename(address) 9 # 对文件名字进行编码处理 10 b = make_header([(file_name, ‘utf-8‘)]).encode(‘utf-8‘) 11 email.attach(b, text) 12 email.send()
邮件服务可在settings.py里配置,如下:
1 # 是否使用协议ssl 或 tls 2 EMAIL_USE_SSL = False 3 # 邮件服务器,一般是smtp 4 EMAIL_HOST = ‘smtp.xxx.com‘ 5 # 服务端口(邮件发送服务对应的端口) 6 EMAIL_PORT = xxx 7 # 用户名和密码 8 EMAIL_HOST_USER = ‘xxx‘ 9 EMAIL_HOST_PASSWORD = ‘xxxx‘
以上是关于Django 邮件推送 解决附件中文名字乱码的主要内容,如果未能解决你的问题,请参考以下文章