Postfix - Protokoll des jeweiligen MailId-Inhalts schreiben und entfernen

Postfix - Protokoll des jeweiligen MailId-Inhalts schreiben und entfernen

Ich muss eine Protokolldatei schreiben, die alle E-Mail-Inhalte der jeweiligen Mail-ID aus der Mail-Warteschlange enthält.

Ich habe den folgenden Code geschrieben, der alle Mail-IDs anzeigt.

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

Beispiel: mein Hostname alstest.comDie obige Abfrage zeigt die gesamte Mail-Warteschlangen-ID des[email geschützt]

Ausgabe: so wie das

295E36A10B7
270986A1407
26F296A1460
9099D6A02F8

aber ich werde die folgende Abfrage versuchen, um den Inhalt der Mailqueue-ID anzuzeigen. Das funktioniert nicht.

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

das funktioniert nicht. Könnten Sie mir bitte eine Idee geben, wie der gesamte E-Mail-Inhalt angezeigt werden kann?

Antwort1

Schließlich habe ich die folgende Lösung ausprobiert. Das funktioniert gut.

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

verwandte Informationen