
メール キューからの特定のメール 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