我在pythonmime库中遇到了一些非常奇怪的问题。由于某些原因,当消息包含字符串From something
,将其作为字符串打印会产生>From something
。在
我编写了这个最小的测试用例,它显示了问题:
from email import charset
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
charset.add_charset('utf-8', charset.SHORTEST)
msg = MIMEMultipart()
msg['From'] = 'test@test.com'
msg.attach(MIMEText('From whatever', "plain", "utf-8"))
print msg.as_string()
我得到的输出如下:
^{pr2}$显然,这是由add_charset
调用引起的,但我不明白这怎么会导致与UTF8和字符集完全无关的问题。在
它与编码无关,在Python2.7和Python3.4之间是不同的。Python3.4不存在这个问题。在
在python 2.7中:
给予
^{pr2}$我认为原因是在传统的mbox格式中,以
From
(而不是表示头的From:
)开头的行是新消息开始的标记(至少在freebsd9中仍然是这样)。而邮件发送者通常将其转义为>From foo
。我想电子邮件模块是为了与2.7兼容相关问题 更多 >
编程相关推荐