我正在尝试使用python和email.Parser
来解析文件中的电子邮件。我使用以下命令
headers = Parser().parse(open(filename, 'r'))
解析文件。但是,当我尝试使用身体时,例如。
print(headers.get_payload()[0])
我得到像
这样的东西From nobody Mon Oct 12 16:32:25 2015
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Hi Alex,
....
有没有办法摆脱前三/四行?以及如何解码'fr = C3 = BCher'等内容?
答案 0 :(得分:3)
要进入邮件正文,你必须走()它的不同部分,即:
a = email.message_from_file(open(filename, 'r')) #shorthand for Parser().parse
body = ''
if a.is_multipart():
for part in b.walk():
ctype = part.get_content_type()
cdispo = str(part.get('Content-Disposition'))
# skip any text/plain (txt) attachments
if ctype == 'text/plain' and 'attachment' not in cdispo:
body = part.get_payload(decode=True) # decode
break
# not multipart - i.e. plain text, no attachments
else:
body = b.get_payload(decode=True)
get_payload()中的decode = True执行base64 / etc解码,即'fr = C3 = BCher'字符串
答案 1 :(得分:0)