【发布时间】:2013-07-26 07:27:24
【问题描述】:
似乎很容易得到
From
To
Subject
等通过
import email
b = email.message_from_string(a)
bbb = b['from']
ccc = b['to']
假设"a" 是看起来像这样的原始电子邮件字符串。
a = """From root@a1.local.tld Thu Jul 25 19:28:59 2013
Received: from a1.local.tld (localhost [127.0.0.1])
by a1.local.tld (8.14.4/8.14.4) with ESMTP id r6Q2SxeQ003866
for <ooo@a1.local.tld>; Thu, 25 Jul 2013 19:28:59 -0700
Received: (from root@localhost)
by a1.local.tld (8.14.4/8.14.4/Submit) id r6Q2Sxbh003865;
Thu, 25 Jul 2013 19:28:59 -0700
From: root@a1.local.tld
Subject: oooooooooooooooo
To: ooo@a1.local.tld
Cc:
X-Originating-IP: 192.168.15.127
X-Mailer: Webmin 1.420
Message-Id: <1374805739.3861@a1>
Date: Thu, 25 Jul 2013 19:28:59 -0700 (PDT)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="bound1374805739"
This is a multi-part message in MIME format.
--bound1374805739
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
ooooooooooooooooooooooooooooooooooooooooooooooo
ooooooooooooooooooooooooooooooooooooooooooooooo
ooooooooooooooooooooooooooooooooooooooooooooooo
--bound1374805739--"""
问题
如何通过 python 获得这封邮件的Body?
到目前为止,这是我知道的唯一代码,但我还没有测试它。
if email.is_multipart():
for part in email.get_payload():
print part.get_payload()
else:
print email.get_payload()
这是正确的方法吗?
或者也许有一些更简单的东西,比如......
import email
b = email.message_from_string(a)
bbb = b['body']
?
【问题讨论】:
-
请注意,Python 3.6+ 通过即将推出的默认解析策略提供便捷的 get_body() 函数,正如@Doctor J 的较新答案中所述,并注意 Todor Minakov 的答案比 falsetru 的答案更稳健
标签: python email python-2.7 mod-wsgi wsgi