古い電子メールアーカイブがあります。これを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をテキストレンダリングに適用する方法を学びます。