0

英語以外(中国語、日本語など)でメールを送信する必要があります。件名と本文を取得する 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()

英語ではうまくいきますが、他の言語ではうまくいきません。どうすれば修正できますか?

4

4 に答える 4

0

またはこれを試してください:

from email import Charset
# Due to http://code.djangoproject.com/ticket/11212
Charset.add_charset('utf-8',Charset.SHORTEST,None,'utf-8')
于 2012-08-29T13:31:31.383 に答える
0

ページをUnicodeに設定してみてください

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

文字セットは、複数の言語とそれぞれの文字を認識します。

于 2012-08-29T13:28:39.460 に答える
0

そうしてみる

import sys
reload(sys)  # to enable 'setdefaultencoding' again  (optional)
sys.setdefaultencoding("UTF-8")

subject.encode("UTF-8")

于 2013-02-07T13:50:42.333 に答える
0

Burhan が尋ねたように、どのようにメールを生成html_contentし、どのメール クライアントでメールをチェックしましたか? Davidが示唆するように、通常html_contentは有効なHTMLである必要があります。<meta http-equiv="content-type" content="text/html; charset=utf-8" /> <head>

また、 を確認してくださいdjango.conf.settings.DEFAULT_CHARSET。そうでない場合は、 に設定するか、コードで'utf-8'を設定できます。( などの文字セットを使いたい場合はそれに置き換えてください)'utf-8'msg.encoding = 'utf-8'gb18030'utf-8'

さらに、Python 2.X コードでは、ASCII 以外の文字を含む文字列には常に unicode を使用することをお勧めします。

subject = u'附录E: 配置参考'
body = u'附录E: 配置参考'

# instead of
subject = '附录E: 配置参考'
body = '附录E: 配置参考'
于 2012-08-29T14:37:34.200 に答える