Python 用英语以外的语言发送邮件
我需要用非英语(中文、日语等)发送邮件。 我有一个template.py文件,从中获取主题和正文。 template.pyPython 用英语以外的语言发送邮件,python,django,email,utf-8,multilingual,Python,Django,Email,Utf 8,Multilingual,我需要用非英语(中文、日语等)发送邮件。 我有一个template.py文件,从中获取主题和正文。 template.py #!/us/bin/python
#!/us/bin/python
# -*- coding: utf-8 -*-
subject = '附录E: 配置参考'
body = '附录E: 配置参考'
我从template.py文件中读取了主体和主题
msg = EmailMultiAlternatives(subject, body, from, to)
msg.attach_alternative(html_content, "text/html")
msg.send()
这对英语很好,但对其他语言不行。
如何修复它?尝试将页面设置为unicode
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
字符集识别多种语言及其各自的字符 或者试试这个:
from email import Charset
# Due to http://code.djangoproject.com/ticket/11212
Charset.add_charset('utf-8',Charset.SHORTEST,None,'utf-8')
正如Burhan所问,如何生成
html\u内容
,以及在哪个邮件客户端检查邮件?通常html\u内容
应该是具有
在其
中,正如David建议的那样
另外,请检查django.conf.settings.DEFAULT\u字符集
,如果它不是'utf-8'
,您可以将其设置为'utf-8'
或在代码中设置msg.encoding='utf-8'
。(如果要使用字符集,如gb18030
,请用它替换'utf-8'
)
另外,在Python2.X代码中,对于包含非ascii字符的字符串,最好始终使用unicode,因此
subject = u'附录E: 配置参考'
body = u'附录E: 配置参考'
# instead of
subject = '附录E: 配置参考'
body = '附录E: 配置参考'
试试看
import sys
reload(sys) # to enable 'setdefaultencoding' again (optional)
sys.setdefaultencoding("UTF-8")
subject.encode(“UTF-8”)如何生成
html\u内容
?是否有错误消息?我认为问题在于缺少头值的输入,这不像在unicode字符串上运行.encode(“utf-8”)
那么简单。