我從Python(Django)發送電子郵件。電子郵件主機是'smtp.gmail.com'。當我使用本地主機時,我可以在電子郵件主題中使用特殊字符。然而,現在我正在嘗試從服務器(webfaction),我收到一個錯誤「UnicodeDecodeError:'ascii'編解碼器無法解碼字節...」在電子郵件模板中,我使用十六進制代碼,但它們不適用於主題(他們沒有翻譯)。該怎麼辦?Python,發送主題爲特殊字符的電子郵件
# 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()
我發現這個http://stackoverflow.com/a/517974/230884對我的情況有用。值得一看。我也同意'mgibsonbr'。 'u'並不能解決所有問題。其他一些角色會失敗。 – CppLearner
@CppLearner我的意思是,只使用'coding' **而不使用**也使用'u'並不總是有效。無論如何,如果環境不支持「編碼」和/或指定的編碼,它無法正確讀取源文件。最好使用十六進制代碼或'\ uXXXX'。 – mgibsonbr
@mgibsonbr我想的是相反的。也許這只是我的環境。我按照你的建議完成了,但是這個組合仍然無效。所以最後,我必須使用上面鏈接的解決方案。我對unicode知之甚少(這是一種恥辱)。因此,「對我的情況有用」:)歡呼。 – CppLearner