PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : postfix => mail queue automatisch leeren



madmax79
08.10.07, 10:56
hallo zusammen,

hat man in den postfix configs die möglichkeit, dass alle mails die in der queue liegen und nicht zustellbar sind, automtisch nach einem tag gelöscht werden?

wir nutzen einen linuxserver mit postfix als relay server für einen ms exchange server.

wenn es doch mal vorkommt, dass spams duchkommen, dann leitet der linux server die mails an den exchange. wenn der exchange die mails nicht zuordnen kann, so landen diese wieder auf dem linux server in der queue, wo sie verweilen da sie an den absender nicht zurück gesendet werden können, mit der meldung:

server dropped connection

könnte man nun automatisch z.b. einmal am tag alle mails aus der queue löschen, die die meldung "server dropped connection" enthalten?

gruss
mad-max

zyrusthc
09.10.07, 02:45
#!/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,"|cat") || die "couldn't open postsuper" ;
open(POSTSUPER,"|postsuper -d -") || die "couldn't open postsuper" ;

foreach (keys %Q) {
print POSTSUPER "$_\n";
};
close(POSTSUPER);
Mit diesem Script kann man einzelne Adressen aus der queue entfernen.
zb.

delete-from-mailq spammer@spamdomain.org
Ich glaube damit kann man auch nach Vorkommen Mails entfernen. Probiere es einfach aus.
Ansonsten wenn du etwas Ahnung von Perl hast kannst du es ja umschreiben.
Oder Hilfe "beim Umschreiben" dazu/dabei wirst du sicher auf http://www.mrunix.de finden.

Wenn es funktioniert, dann das ganze dann als Cronjob einsetzen , fertig.

Quelle des Scripts: http://www.arschkrebs.de/postfix/scripts/delete-from-mailq


Greeez Oli

madmax79
10.10.07, 06:59
ok; dank dir...werde ich mal testen...

mad-max