我正在尝试使用Python邮箱打印邮件内容(邮件正文)。
import mailbox
mbox = mailbox.mbox('Inbox')
i=1
for message in mbox:
print i
print "from :",message['from']
print "subject:",message['subject']
print "message:",message['**messages**']
print "**************************************"
i+=1
但我觉得消息['消息']不适合在此处打印邮件内容。我无法从documentation
中理解它答案 0 :(得分:15)
要获取邮件内容,您需要使用get_payload()
。 mailbox.Message
是email.message.Message
的子类。您还要检查is_multipart()
,因为这会影响get_payload()
的返回值。例如:
if message.is_multipart():
content = ''.join(part.get_payload(decode=True) for part in message.get_payload())
else:
content = message.get_payload(decode=True)
答案 1 :(得分:14)
def getbody(message): #getting plain text 'email body'
body = None
if message.is_multipart():
for part in message.walk():
if part.is_multipart():
for subpart in part.walk():
if subpart.get_content_type() == 'text/plain':
body = subpart.get_payload(decode=True)
elif part.get_content_type() == 'text/plain':
body = part.get_payload(decode=True)
elif message.get_content_type() == 'text/plain':
body = message.get_payload(decode=True)
return body
如果正文是纯文本,则此函数可以为您提供邮件正文。