# Mail aus Mailqueue löschen

Als Admin kennt man das. Mal ein durchdrehendes Script, mal ein Spamopfer… Gelegentlich ist es nötig Mails schnell aus der Postfix-Queue zu löschen.

#### Alle Mails aus der Queue löschen

Das könnte wichtig werden, wenn die Queue eigentlich nur mit double-bounces verstopft ist. Achtung, dieses Kommando räumt die Queue richtig auf.

```
postsuper -d ALL
```

<div id="bkmrk-"></div>#### Alle Mails mit bestimmten Inhalt löschen

Wenn z.B. ein Kontaktformular eines Forum missbraucht wurde und in allen (ungewünschten) Mails der gleiche Text vorkommt.

```
grep -rl "Ein netter Gruss von" * | cut -d"/" -f2 | postsuper -d -
```

<div id="bkmrk--1"></div>#### Mail mit bestimmten Sender oder Empfänger löschen

Dies löscht Mails mit einem bestimmten Sender oder Empfänger:

```
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } /@yahoo\.it$/ { print $1 }' | tr -d '*!' | postsuper -d -
```

<div id="bkmrk-mailq-%7C-tail--n-%2B2-%7C"></div>#### Mail an bestimmten Empfänger löschen

Als Einzeiler:

```
postqueue -p | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($8 == "benutzer@deinserver.de")print $1 }' | tr -d '*!' | postsuper -d -
```

Oder über ein Perl-Script mit einem regulären Ausdruck:

```
#!/usr/bin/perl
 
$REGEXP = <a href="http://perldoc.perl.org/functions/shift.html" rel="noopener" target="_blank">shift</a> || <a href="http://perldoc.perl.org/functions/die.html" rel="noopener" target="_blank">die</a> "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,"|cat") || die "couldn't open postsuper" ;
<a href="http://perldoc.perl.org/functions/open.html" rel="noopener" target="_blank">open</a>(POSTSUPER,"|postsuper -d -") || <a href="http://perldoc.perl.org/functions/die.html" rel="noopener" target="_blank">die</a> "couldn't open postsuper" ;
 
foreach (<a href="http://perldoc.perl.org/functions/keys.html" rel="noopener" target="_blank">keys</a> %Q) {
  <a href="http://perldoc.perl.org/functions/print.html" rel="noopener" target="_blank">print</a> POSTSUPER "$_\n";
};
<a href="http://perldoc.perl.org/functions/close.html" rel="noopener" target="_blank">close</a>(POSTSUPER);
```

<div id="bkmrk--2"></div>