/var/mailで一度に1つのメールを読む方法

/var/mailで一度に1つのメールを読む方法

/var/mail/に5つのメッセージがあり、一度に1つのメッセージを読み取った後、次のメッセージに移動する前にそのメールで文字列検索を実行したいとします。一度に1つのメッセージを解析するために使用できるコマンドはありますか?

私はmboxファイルのすべてのメッセージを読んだ後、一度に1つずつ読んでメッセージの件名、受信者、送信者、およびステータス(バウンスコード)を抽出できるbashスクリプトを作成したいと思います。私の計画は、grepmailを使用してファイル内の電子メールの数を取得し、forループでこの数を使用して一度に1つの電子メールを取得し、テキストを操作することです。それは次のとおりです。

$count = grepmail -r . /var/mail/user | awk '{print $2}'
for($i=1;$i<=$count;$i++) {
    $content = *GetMessage* -number $i /var/mail/user
    ...
    Do string operation on this message & save to $DelimitedData
    ...
}
$Delimiteddata

一度に1つずつメッセージを選択して文字列操作を実行する方法がわかりません。誰かが非対話型でこれを行うのに役立つ可能性のあるコマンド/プログラムを案内できますか?

答え1

これformailツール:プログラムメール(すべてのディストリビューションで利用可能でクラシックです。)この目的のために正確に設計されています。

基本的な使い方:

formail -s myprogram --option

myprogram --option各メールを順番に実行します。プログラムは標準入力を介して各メッセージを受け取ります。

関連情報