簡體   English   中英

Python,發送主題中具有特殊字符的電子郵件

[英]Python, sending email with special character in subject

我正在從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() 

如果你使用的是Python 2,我建議的前面加上你的字符串u

subject = u"æøå"

(我知道coding “魔術評論”應該自動處理,但從經驗我可以說它並不總是有效)

更新:為了將來參考,確保生產環境支持開發時使用的相同編碼也很重要。 使用UTF-8 (它在任何地方都受支持)應該沒問題,但是如果您要在Windows下編輯源文件( Cp1252 )然后在UNIX服務器中部署,那么Python解釋器可能無法讀取它們,無論存在coding

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM