コマンドラインで電子メールファイル(MailDirにあります)をどのように表示できますか?

コマンドラインで電子メールファイル(MailDirにあります)をどのように表示できますか?

一度コマンドラインから電子メールファイルを読むための非常に簡単な方法があったと確信しています。しかし、今はもう見つかりません。

MailDir形式のファイルがあり、その内容(ヘッダ、本文(HTML/一般テキスト)、MIMEデコード、添付ファイル抽出可能)を見たいと思います。これは私のメールではありません。私のために電子メールを受信、並べ替え、送信できるMUAを望むものではありません。これは私がレビューする必要がある生ファイルです。

答え1

コンボメールディレクトリツール(少なくともDebianではそう呼びます)muMaildirメールメッセージの内容を表示する素晴らしい機能があるというプログラムが含まれています。タイトル、テキスト/一般テキストセクション、添付ファイルのリストのみが表示されます。バラよりマニュアルページ

例: mu view /path/to/email-file

MIMEを含む電子メールがある場合は、text/htmlそれらを別々のファイルに抽出できます。 (HTMLが最初の部分であると仮定すると、muデフォルト値mu extract /path/to/email-file --parts=1はとして出力されます。)1.msgpart

答え2

使用mutt -f /path/to/Maildir。または、mutt -R -f /path/to/Maildirmuttにメールボックスを読み取り専用モードで開くようにしたい場合。

検討中のコマンドラインツールは次のとおりです。MHまた〜として知られていますメッセージ処理システム、古くて維持されていないもの、またはニューMHまだ活発に保たれています。

私はAncientがMaildir / mailboxを処理できないと思いますmhが、nmh確かにできます。

nmhパッケージングは​​Debianで同じように動作し、nmhおそらく他のほとんどのディストリビューションでも同じでしょう。

答え3

reformime抽出に使用できるコマンド(maildropDebian / Ubuntuパッケージにあります)。電子メールファイルの。

reformime -i <your-message次のMIME部分のリストを取得できます。

section: 1
content-type: multipart/alternative
content-transfer-encoding: 8bit
charset: UTF-8
content-language: en-GB
starting-pos: 0
starting-pos-body: 2494
ending-pos: 75170
line-count: 1287
body-line-count: 1241

section: 1.1
content-type: text/plain
content-transfer-encoding: 8bit
charset: utf-8
starting-pos: 2578
starting-pos-body: 2666
ending-pos: 8180
line-count: 181
body-line-count: 178

section: 1.2
content-type: multipart/related
content-transfer-encoding: 8bit
charset: UTF-8
starting-pos: 8220
starting-pos-body: 8303
ending-pos: 75128
line-count: 1054
body-line-count: 1051

section: 1.2.1
content-type: text/html
content-transfer-encoding: 8bit
charset: utf-8
starting-pos: 8343
starting-pos-body: 8415
ending-pos: 25276
line-count: 343
body-line-count: 340

その後、セクションを抽出できます。reformime -e -s 1.1たとえば、これによりプレーンテキストバージョン(1.1)が抽出されます。同様に、セクション 1.2.3 がイメージの場合、次のように表示されます。reformime -e -s 1.2.3 <mail.eml | display :-

したがって、プレーンテキストバージョンだけを見たい場合は、便利な1行で「簡単に」見ることができます。

F=/path/to/the-email-file
reformime -e -s $(reformime -i <$F | fgrep -B1 'content-type: text/plain' | head -n1 | cut -c 10- ) <$F

私が探したい簡単な選択ではありませんでしたが、とにかく文書化したいと思いました!

関連情報