Python : How to parse the Body from a raw email , given that raw email does not have a "Body" tag or anything
email, mod-wsgi, python, python-2.7, wsgi
Solution
Use 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()
Problem
It seems easy to get the ``` From To Subject ``` etc via ``` import email b = email.message_from_string(a) bbb = b['from'] ccc = b['to'] ``` assuming that `"a"` is the raw-email string which looks something like this. ``` 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--""" ``` THE QUESTION how do you get the `Body` of this email via python ? So far this is the only code i am aware of but i have yet to test it. ``` if email.is_multipart(): for part in email.get_payload(): print part.get_payload() else: print email.get_payload() ``` is this the correct way ? or maybe there is something simpler such as... ``` import email b = email.message_from_string(a) bbb = b['body'] ``` ?