一連の電子メール メッセージを読み込むために、Python メールボックス モジュールを使用しています。メール内の最新のメッセージ以外をすべて切り取る簡単な方法はありますか? クライアントごとに返信テキストの扱いが異なるようです。そのため、すべての電子メールで機能する、それらを除外する単一の方法を見つけることができません。
これをメールボックス モジュールに組み込む方法はありますか? 電子メールを取得し、プレーンテキスト部分を出力ファイルに出力するために実行しているコードは次のとおりです。
import mailbox
def main():
text = ""
for message in mailbox.mbox('test.mbox'):
text += str(getPayload(message))
with open('output.txt','wb') as outputfile:
outputfile.write(text)
outputfile.close()
def getPayload(msg):
body = ''
if msg.is_multipart():
for part in msg.walk():
ctype = part.get_content_type()
cdispo = str(part.get('Content-Disposition'))
if ctype == 'text/plain' and 'attachment' not in cdispo:
body = part.get_payload(decode=True)
break
else:
body = msg.get_payload(decode=True)
return body
if __name__ == "__main__": main()
チェーン内の最新のメッセージのみを取得する方法はありますか?