/ 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つのメッセージを取得して、それらに対して文字列操作を実行する方法がわかりません。誰かが私にこれを非対話的に行うのに役立つコマンド/プログラムを教えてもらえますか?
承認された回答:
formail
procmailのツール(どのディストリビューションでも利用可能で、クラシックです)は、この目的のために正確に設計されています。
基本的な使用法:
formail -s myprogram --option
myprogram --option
を実行します 順番に各メールに。プログラムは、標準の入力で各メールを受信します。