【发布时间】:2014-01-01 08:42:47
【问题描述】:
我在从我的服务器发送带有俄语文本的电子邮件时遇到问题。 我正在发送这样的电子邮件:
from django.core.mail import EmailMultiAlternatives
message = EmailMultiAlternatives(
'some subject',
'',
'from@example.com',
['to@example.com']
)
message.attach_alternative(unicode_text_with_html, "text/html")
message.send()
当这封电子邮件涉及邮件服务(即 gmail.com)时,有时会出现几个损坏的符号 - Ð � 而不是字母。其他字母(即使是相同的字母)也不会损坏。当我指定 cp1251 编码(即message.encoding = 'cp1251')时,电子邮件不会被损坏。但是有些电子邮件服务不接受 cp1251 编码,并且在用户尝试阅读邮件时会出错。
当我使用带有 utf-8 编码的基于文件的电子邮件后端时,邮件正文中的符号也不会损坏。并且字符集设置为 utf-8。
我想知道 utf-8 编码的消息怎么会这样被破坏。我能做些什么来摆脱这些符号吗?
P.S.:我使用 Postfix 作为邮件服务器来发送邮件
更新:在我的测试服务器上情况完全一样。我已经删除了 Postfix 并用 Qmail 替换了它。一切正常。我把它换回来,符号又回来了。所以我最近的猜测是它的 Postfix 问题。我会尝试调整配置。
【问题讨论】:
-
你试过用Django's ugettext
_(unicode_text_with_html) -
我想知道这有什么帮助。刚试了一下,什么也没做。
标签: python django email utf-8 postfix-mta