看起来很容易
From To Subject
等通过
import email b = email.message_from_string(a) bbb = b['from'] ccc = b['to']
假设这"a"是原始电子邮件字符串,看起来像这样。
"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--"""
问题
您如何Body通过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']
?
使用Message.get_payload
b = email.message_from_string(a) if b.is_multipart(): for payload in b.get_payload(): # if payload.is_multipart(): ... print payload.get_payload() else: print b.get_payload()