Inhaltsverzeichnis

nützliche Kommandos rund um Postfix

Postfix Logo

postconf

Zeigt alle Einstellungen der main.cf, die nicht den Defaultwerten entsprechen:

 postconf -n

Zeigt den Defaultwert einer Variable an; ignoriert also den Wert aus der main.cf:

 postconf -d myorigin
 myorigin = $myhostname

Die Abfrage von Variablen direkt aus unserem laufenden Postfix heraus erfolgt ohne Parameterangabe:

 postconf myorigin
 myorigin = $mydomain

Wollen wir einen Parameter ändern, so benutzen wir die Option -e

postconf -d smtpd_client_connection_count_limit
smtpd_client_connection_count_limit = 50

postconf smtpd_client_connection_count_limit
smtpd_client_connection_count_limit = 10

postconf -e "smtpd_client_connection_count_limit = 15"

postconf smtpd_client_connection_count_limit
smtpd_client_connection_count_limit = 15

Anschließend muss via service postfix reload der laufende Daemon noch von der Änderung an der main.cf informiert werden

postqueue

Zeigt eine vollständige Übersicht aller eMails in den Warteschlangen

 # postqueue -p

Alle eMails in der deferred-Queue werden sofort wieder zur Auslieferung gebracht

 # postqueue -f

postsuper

Mailqueue zu Auslieferung bringen

Um alle Nachrichten aus der Mailqueu erneut zur Auslieferung zu bringen, erreichen wir durch:

 # postsuper -r ALL

eine einzelne Mail löschen

Löschen der eMail mit der <QUEUE-ID> aus der Warteschlange

 # postsuper -d <QUEUE-ID>

mehrere Mails löschen

Will man mehrere Nachrichten eines bestimmten Absenders bzw. Empfängers löschen, so wäre die manuelle Löschung von z.B. mehreren Tausenden von Nachrichten nicht mehr durchzuführen.

In der Manpage von postsuper findet man hierzu einen sehr Hilfreichen Tip (Die Variabeln sind dabei wie folgt belegt: $7=sender, $8=recipient1, $9=recipient2)

Mit folgendem Befehl löscht man z.B. alle Nachrichten von gaudiwurm@nerv.com:

 # mailq | tail +2 | grep -v '^ *(' | awk  'BEGIN { RS = "" } { if ($7 == "gaudiwurm@nerv.com") print $1 }' | tr -d '*!' | postsuper -d -

alternativ empfiehlt sich das delete_from_mailq.pl von Victor Duchovni

#!/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);

postalias

Konvertiert die Datei aliases in das binäre Datenbankformat. (Auf Grund der Doppelpunkte funktioniert hier postmap nicht!) Muss nach jedem Ändern der /etc/aliases aufgerufen werden!

# postalias /etc/aliases

postmap

Konvertiert die angegebene Textdatei in das binäre Datenbankformat. Muss nach jeder Änderung an der Textdatei aufgerufen werden!

 # postmap /etc/postfix/policyd_weight_client_whitelist

Listet alle einträge einer Datenbank (i.e. policyd_weight_client_whitelist) auf:

 # postmap -s /etc/postfix/policyd_weight_client_whitelist
 kundenserver.de OK

lsof

Zeigt welches Programm (Command) auf dem gennaten Port lauscht/reagiert.

lsof -i :25
COMMAND   PID    USER   FD   TYPE  DEVICE SIZE NODE NAME
smtpd   22703 postfix    6u  IPv4 2790158       TCP *:smtp (LISTEN)
smtpd   22803 postfix    6u  IPv4 2790158       TCP *:smtp (LISTEN)
master  31413    root   11u  IPv4 2790158       TCP *:smtp (LISTEN)

mailx

Nachrichtentext (Mailbody) wird mit dem Subject „Betreff“ an den postmaster und in cc an bigchief geschickt

 # echo Nachrichtentext | mailx -s "Betreff" -c bigchief postmaster

uuenview

Will man Nachrichten mit Anhängen von der Konsole aus verschicken, so z.B. Status- oder Logfiles via cronjob, so bendient man sich am besten uuenview.

Das Postfixlog (/var/log/maillog) wird als Anhang an den User mit der Adresse empfaenger@nausch.org geschickt. Absender ist absender@nausch.org, wobei wir als Rückantwortadresse rueckantwortadresse@nausch.org mitgeben.

 # /usr/bin/uuenview -b -s "Betreff" -r rueckantwortadresse@nausch.org -f absender@nausch.org -m empfaenger@nausch.org /var/log/maillog