wim の回答に似ていますが、From: が必要に応じてメールに追加されます。
list = ['From:' + msg for msg in ('\n' + text).split('\nFrom:')]
ただし、説明したような電子メールファイルの読み取りをより細かく、より信頼性の高い制御を提供するネイティブの Python モジュールがあります。メールとメールボックスが思い浮かびます。
これらが標準の mbox スタイルのメールで、各ファイルが「From:」で始まり、いくつかのヘッダー行、場合によってはダイジェストなどであると仮定すると、sendmail や Postfix で使用されるようなものです。文字列をファイルにするか、単に既存のファイルを使用します。
mbox = mailbox.mbox(path_to_mailbox_file)
mbox.lock() # only if you're using an active mailbox file
message_strings = [message.as_string() for message in mbox]
mbox.unlock() # again, only if you're using an acture mailbox file
mbox.close()
メッセージの数を取得するには、単に使用しますlen(mbox)
。
他にも便利な機能がたくさんあります。これらのモジュールを使用していくつかのスクリプトを作成し、その結果に非常に満足しています。as_string
(ヘッダーの一部を再フォーマットする可能性があることに注意してください。)