A Postfix egy Linux operációs rendszerre írt levéltovábbító ügynök (MTA). Számos adminisztrációs felület található hozzá, melyekkel figyelhető, menedzselhető. Ez a bejegyzés néhány hasznos mintát mutat a várólista (queue) manipulálására.
pistike@postfix:$ mailq #vagy pistike@postfix:$ postqueue -p
Mindkét parancs ugyanazt csinálja, a várólistában (queue) várakozó emaileket nézhetjük meg. A queue kétféle üzenetet típust tartalmaz. Az egyik üzenet típus a sorba állított, küldésre várakozó, a második típus a halasztott (deferred) ezek valamilyen hiba miatt nem lettek elküldve, ezeket a leveleket a postfix újra fogja küldeni. Azt hogy hányszor, mennyi idő múlva, az konfigurációtól függő.
pistike@postfix:$ postqueue -f #vagy pistike@postfix:$ postfix flush
Az összes sorban álló levél újraküldése.
pistike@postfix:$ postsuper -d ALL deferred
A teljes várólista törlésre kerül. Ezt a parancsot körültekintően alkalmazzuk, törölhetünk vele fontos leveleket, csak óvatosan. Személy szerint én ezt nem használom.
pistike@postfix:$ postsuper -d ALL deferred
Minden olyan üzenet törlése a queue-ból ami deferred (halasztott) állapotban van.
Az igazi megoldás a szelektív törlés lenne, de erre egyszerű, könnyen használható parancsot ilyen formában még nem találtam. Ellenben van egy egyszerű postfix-delete.pl perl szkript, amivel nagyon jól lehet kezelni a várólistákat.
#!/usr/bin/perl $REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!"; @data = qx</usr/sbin/postqueue -p>; for (@data) { if (/^(\w+)(\*|\!)?\s/) { $queue_id = $1; } if($queue_id) { if (/$REGEXP/i) { $Q{$queue_id} = 1; $queue_id = ""; } } } open(POSTSUPER,"|postsuper -d -") || die "couldn't open postsuper" ; foreach (keys %Q) { print POSTSUPER "$_\n"; }; close(POSTSUPER);
Használata egyszerű és nagyszerű. Csak néhány példa a teljesség igénye nélkül.
./postfix-delete.pl domainnev.xyz # minden levelet töröl a queue-ból amiben a domainnev.xyz szerepel, küldő vagy # fogadó oldalon ./postfix-delete.pl valaki@domainnev.xyz # minden levelet töröl a queue-ból amiben szerepel a valaki&domainnev.xyz # küldő, vagy fogadó oldalon ./postfix-delete.pl MAILER-DAEMON # minden levelet töröl a queue-ból ami a MAILER-DAEMON-tól érkezik # stb...
Ennél egyszerűbb megoldást nem találtam. Ez valóban hatékony és remekül használható.
Forrás: cyberciti.biz