でエンコードされた Python 電子メール メッセージを再構成する方法はありますか(つまり、 RFC 1521Content-Type: message/partial
のセクション「7.3.2. メッセージ/部分サブタイプ」)?
特に、一連のメールが与えられた場合、それらを元のメールにマージするにはどうすればよいでしょうか? すなわち
emails = [...] # a list of `email`.
reassembled_email = merge_emails(emails)
何をしmerge_emails
なければなりませんか?これを行ったPythonプロジェクトはありますか?
次のような電子メールを期待できます。
差出人: me@example.com 宛先: me2@example.com 日付: 2010 年 6 月 30 日 (水) 14:19:45 -0400 MIME バージョン: 1.0 コンテントタイプ: メッセージ/部分的; id="TAN_U_R<0.0000749046c4>"; 数=1; 合計=2 差出人: me@example.com 主題: 宛先: me2@example.com 日付: 2010 年 6 月 30 日 (水) 14:19:45 -0400 MIME バージョン: 1.0 コンテンツ タイプ: マルチパート/混合。 境界="DC_BOUND_PRE_<1277921980.0000744>" これは、MIME 形式のマルチパート メッセージです。 --DC_BOUND_PRE_<1277921980.0000c4> コンテンツ タイプ: テキスト/プレーン。charset=US-ASCII コンテンツ転送エンコーディング: 7bit この電子メールは、お使いのプリンターから送信されました いくつかのランダムなテキスト。 --DC_BOUND_PRE_<1277921980.0000744> コンテンツタイプ: application/pdf; 名前="abcdef.pdf" コンテンツ転送エンコーディング: base64 Content-Disposition: 添付; ファイル名="abcdef.pdf" JVBERi0xLjMKJZKgoooKNCAwIG9iago8PC9UeXBLL1hPYmplY3QKL1N1YnR5cGUvSW1hZ2UK ...
ここに私の最初の考えがあります:
from email import parser
def merge_emails(emails):
# we can presume emails are ordered correctly and all the parts accounted for
content = ''
for eml im emails:
content += emails.get_payload()
return parser.Parser().parsestr(content)
これは機能しますか (それほど単純ですか)? この電子メールをどのように再構成できますか?
Pythonでこれを行う代わりに、それを行うコマンドラインUnix/Mac OS Xプログラムはありますか?
読んでくれてありがとう、そしてあなたが提供できるかもしれない情報をありがとう。
敬具、
ブライアン