Postfix - 特定のメールIDの内容のログを書き込み、削除する

Postfix - 特定のメールIDの内容のログを書き込み、削除する

メール キューからの特定のメール ID のすべてのメール コンテンツが含まれるログ ファイルを書き込む必要があります。

すべてのメールIDを表示する以下のコードを作成しました。

mailq | tail -n +2 | awk 'BEGIN { RS = "" } / root@'+`hostname`+'$/ { print $1 }'

例: 私のホスト名はテスト上記のクエリは、すべてのメールキューIDを表示します。[メールアドレス]

出力: そのように

295E36A10B7
270986A1407
26F296A1460
9099D6A02F8

しかし、メールキュー ID の内容を表示するために次のクエリを試してみます。これは機能しません。

for i in mailq | tail -n +2 | awk 'BEGIN { RS = "" } / root@'+`hostname`+'$/ { print $1 }' ; do postcat -q $i >> maillog.log; postsuper -d $i; done ; 

それは機能しません。すべてのメールの内容を表示するためのアイデアを教えていただけますか?

答え1

最後に、以下の解決策を試しました。問題なく動作しています。

array=($(mailq | tail -n +2 | awk 'BEGIN { RS = "" } / root@'+`hostname`+'$/ { print $1 }'));
for i in ${array[@]}; 
do 
postcat -q $i >> maillog.log;
 postsuper -d $i; 
done

関連情報