Python MIME在正文中的“From”前添加尖括号

2024-09-27 22:44:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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和字符集完全无关的问题。在


Tags: 字符串fromtestimportaddemailmsgsomething
1条回答
网友
1楼 · 发布于 2024-09-27 22:44:02

它与编码无关,在Python2.7和Python3.4之间是不同的。Python3.4不存在这个问题。在

在python 2.7中:

print MIMEText('From foo')

给予

^{pr2}$

我认为原因是在传统的mbox格式中,以From(而不是表示头的From:)开头的行是新消息开始的标记(至少在freebsd9中仍然是这样)。而邮件发送者通常将其转义为>From foo。我想电子邮件模块是为了与2.7兼容

相关问题 更多 >

    热门问题