Postfix - 写入特定 mailId 内容的日志并将其删除

Postfix - 写入特定 mailId 内容的日志并将其删除

我需要编写一个日志文件,其中包含邮件队列中特定邮件 ID 的所有邮件内容。

我已经编写了下面的代码,将显示所有 mailID。

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

相关内容