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
しかし、message ['messages']は、ここにメールの内容を印刷するのに適切ではないようです。 ドキュメント から理解できませんでした
メッセージの内容を取得するには、 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)
_
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
本文がプレーンテキストの場合、この関数はメッセージ本文を提供します。