電子メール(.emlファイル)をプレーンテキストにエクスポート/変換

電子メール(.emlファイル)をプレーンテキストにエクスポート/変換

古い電子メールアーカイブがあります。これを1つの大きなテキストファイルにマージしたいです。可能ですか?電子メールを見て、コンテンツを切り取って貼り付けたときに、私が望むものを正確に得たことがわかりました。すべての書式が消え、読み取り可能なテキストファイルがあり、すべてのメタデータとすべてのHTMLコンテンツが消えました。 「html2text」を見ましたが、削除すると思いましたが、すべてのタグを保持しています。表示、切り取り、貼り付けが可能ですが、時間がかかります。

さて、重要な場合はThunderbirdを使用します。私はこれをプログラムではできないと思います。それは私が期待するコマンドラインユーティリティです。

ベストアンサー1

スクリプトソリューションは以下を使用します。

  • formail(ボーナスprocmail)メールをメールボックス形式に変換
  • mutt無言劇内容解読
  • elinks他のオプションなしでtext/plain電子メール用のHTMLをテキストに変換
  • zsh配置を調整し、eml現在の作業ディレクトリとその下のファイルを見つけます。
#! /bin/zsh -
MAILCAPS==(
print 'text/html; /usr/bin/elinks -force-html -dump %s; copiousoutput'
) mutt -F =(<<'EOF'
set pipe_decode
set pipe_split
alternative_order text/plain text
unset wait_key
auto_view text/html
push "<tag-pattern>~A<enter><tag-prefix-cond><pipe-message>formail>>out.mbox<enter><exit>"
EOF
) -f =(for f (**/*.eml(n.)) formail < $f) > /dev/null

テキストがout.mboxファイルに追加されます。ファイルはまだほとんどのメールユーザーエージェント(Thunderbirdについてはわかりません)によってメールフォルダに開くことができ、ほとんどのヘッダーが削除されたプレーンテキストである必要があります。

ファイルがメールボックス形式かどうかにかかわらずformail>>out.mboxに置き換えcat>>out.txt、ヘッダーが関係ない場合に置き換えますsed '1,/^$/d'>>out.txt

必要にelinks応じて、マニュアルページを確認してHTMLをテキストレンダリングに適用する方法を学びます。

おすすめ記事