首页 > 代码库 > Django 邮件推送 解决附件中文名字乱码
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 邮件推送 解决附件中文名字乱码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。