私はMIMETextを使ってPython 3.2でメールを作成していますが、非ASCII文字のメッセージを作成するのに問題があります。例えばMIMETextのヘッダーの符号化
from email.mime.text import MIMEText
body = "Some text"
subject = "» My Subject" # first char is non-ascii
msg = MIMEText(body,'plain','utf-8')
msg['Subject'] = subject # <<< Problem probably here
text = msg.as_string()
最後の行は
UnicodeEncodeError: 'ascii' codec can't encode character '\xbb' in position 0: ordinal not in range(128)
私にエラーを与えるにはどうすれば対象はASCIIではないことを教えてくれます:MIMETextをしますか? subject.encode('utf-8')
はまったく役に立ちません。とにかく、他の回答に問題のないユニコード文字列を使用している人がいます(Python - How to send utf-8 e-mail?を参照)。 Python 2.7でのエラー(結果が正しいことを意味するとは限りません)。
お手数ですが、スタックオーバーフローで英語が必要です。この回答を英語に翻訳してください。 – mhlester