use*_*003 3 python email encoding
我正在从Python(Django)发送电子邮件.电子邮件主机是'smtp.gmail.com'.当我使用localhost时,我可以在电子邮件主题中使用特殊字符.但是,现在我正在尝试从服务器(webfaction)我得到一个错误"UnicodeDecodeError:'ascii'编解码器无法解码字节..."在电子邮件模板中我使用十六进制代码,但它们不适用于主题(他们没有翻译).该怎么办?
# coding=UTF-8
...
subject = "æøå"
c = {}
t_html = loader.get_template(template_html)
t_text = loader.get_template(template_txt)
e = EmailMultiAlternatives(subject, t_text.render(Context(c)), from_email, [to_email])
e.attach_alternative(t_html.render(Context(c)), "text/html")
e.send()
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Python 2,我建议您在字符串前加上u:
subject = u"æøå"
Run Code Online (Sandbox Code Playgroud)
(我知道coding"魔术评论"应该自动处理,但从经验我可以说它并不总是有效)
更新:为了将来参考,确保生产环境支持开发时使用的相同编码也很重要.它应该没问题UTF-8(它在任何地方都受支持),但如果您要在Windows(Cp1252)下编辑源文件然后在UNIX服务器中部署,Python解释器可能无法读取它们,无论是否存在coding.
| 归档时间: |
|
| 查看次数: |
1349 次 |
| 最近记录: |