trueten.de

»Zu argumentieren, dass Sie keine Privatsphäre brauchen, weil Sie nichts zu verbergen haben, ist so, als würden Sie sagen, dass Sie keine Meinungsfreiheit brauchen, weil Sie nichts zu sagen haben.« Edward Snowden

Postfix: Mails komfortabel löschen

Das folgende Skript löscht alle E-Mails aus der Mailwarteschlange, die dem als erstes Argument angegebenen regulären Ausdruck entsprechen:

#!/usr/bin/perl
$REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*@yahoo.com)!";
@data = qx;
for (@data) {
  if (/^(\w+)(*|\!)?\s/) {
     $queue_id = $1;
  }
  if($queue_id) {
    if (/$REGEXP/i) {
      $Q{$queue_id} = 1;
      $queue_id = "";
    }
  }
}
#open(POSTSUPER,"|cat") || die "couldn't open postsuper" ;
open(POSTSUPER,"|postsuper -d -") || die "couldn't open postsuper" ;
foreach (keys %Q) {
  print POSTSUPER "$_\n";
};
close(POSTSUPER);

Im folgenden Beispiel löscht man alle Nachrichten in der Warteschlange von oder zu der Domain "fuckspamdomain.com":
./postfix-delete.pl fuckspamdomain.com
Im folgenden Beispiel löscht man alle Nachrichten in der Warteschlange, die das Wort "xyz" in der E-Mail-Adresse enthalten:
./postfix-delete.pl xyz
Credits: nixcraft