【发布时间】:2013-04-11 15:58:13
【问题描述】:
我正在使用 MIMEText 在 Python 3.2 中从头开始创建电子邮件,但在创建主题中包含非 ascii 字符的消息时遇到问题。
例如
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)
如何告诉 MIMEText 主题不是 ascii ? subject.encode('utf-8') 根本没有帮助,无论如何我已经看到人们使用 unicode 字符串在其他答案中没有问题(例如参见 Python - How to send utf-8 e-mail?)
编辑:我想补充一点,相同的代码在 Python 2.7 中不会出现任何错误(认为这并不意味着结果是正确的)。
【问题讨论】:
标签: python email python-3.x mime-message