一度コマンドラインから電子メールファイルを読むための非常に簡単な方法があったと確信しています。しかし、今はもう見つかりません。
MailDir形式のファイルがあり、その内容(ヘッダ、本文(HTML/一般テキスト)、MIMEデコード、添付ファイル抽出可能)を見たいと思います。これは私のメールではありません。私のために電子メールを受信、並べ替え、送信できるMUAを望むものではありません。これは私がレビューする必要がある生ファイルです。
答え1
コンボメールディレクトリツール(少なくともDebianではそう呼びます)mu
Maildirメールメッセージの内容を表示する素晴らしい機能があるというプログラムが含まれています。タイトル、テキスト/一般テキストセクション、添付ファイルのリストのみが表示されます。バラよりマニュアルページ。
例: 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/Maildir
muttにメールボックスを読み取り専用モードで開くようにしたい場合。
検討中のコマンドラインツールは次のとおりです。MHまた〜として知られていますメッセージ処理システム、古くて維持されていないもの、またはニューMHまだ活発に保たれています。
私はAncientがMaildir / mailboxを処理できないと思いますmh
が、nmh
確かにできます。
nmh
パッケージングはDebianで同じように動作し、nmh
おそらく他のほとんどのディストリビューションでも同じでしょう。
答え3
reformime
抽出に使用できるコマンド(maildrop
Debian / 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
私が探したい簡単な選択ではありませんでしたが、とにかく文書化したいと思いました!