Python 用英语以外的语言发送邮件

Python 用英语以外的语言发送邮件,python,django,email,utf-8,multilingual,Python,Django,Email,Utf 8,Multilingual,我需要用非英语(中文、日语等)发送邮件。 我有一个template.py文件,从中获取主题和正文。 template.py #!/us/bin/python

我需要用非英语(中文、日语等)发送邮件。 我有一个template.py文件,从中获取主题和正文。 template.py

      #!/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”)
那么简单。