我找到了解决方案。包含非ascii字符的电子邮件标题需要按照RFC
2047进行编码。在Python中,这意味着使用email.header.Header代替标题内容的常规字符串(请参阅http://docs.python.org/2/library/email.header.html)。那么编写上面示例的正确方法是
from email.mime.text import MIMETextfrom email.header import Headerbody = "Some text"subject = "» My Subject" msg = MIMEText(body,'plain','utf-8')msg['Subject'] = Header(subject,'utf-8')text = msg.as_string()
主题字符串将在电子邮件中编码为
=?utf-8?q?=C2=BB_My_Subject?=
在python 2.x中以前的代码对我有用的事实可能与邮件客户端能够解释错误编码的标头有关。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)