Postfix - Wie kann ich die Zustellung von E-Mails in der Warteschlange wiederholen?

94

Ich habe einen Backup-Mail-Server für den Fall, dass der Haupt-Server ausfällt. In diesem Fall werden die E-Mails auf dem Sicherungsserver abgelegt und bleiben dort, bis der Hauptserver wieder verfügbar ist.

Wenn ich einige Male warte, wird die Zustellung automatisch ausgeführt, sobald der Hauptserver wieder verfügbar ist, es kann jedoch lange dauern. So erzwingen Sie einen Sendewiederholungsversuch aller Post?

Zum Beispiel: postqueue -p: Gib mir eine Liste von Mails

Ich habe dann postqueue -f ausprobiert (von der Manpage: Flush the queue: Versuch, alle Mails in der Warteschlange zuzustellen.). Es hat sicher die Warteschlange geleert, aber die Mails wurden nicht zugestellt ...

Nicolas
quelle
scheint -f ist bündig und -q ist Warteschlange (senden Sie die Warteschlange)
erm3nda
1
gibt es keine postqueue -q. Es gibt sendmail -qsendmail-Syntax zu unterstützen, damit Postfix sendmail vollständig ersetzen kann, aber das ist ein Synonym. Die verschiedenen Buchstaben sind jsut, da Postfix andere Buchstaben als sendmail auswählte.
Johannes H.
Sorry nochmal, Kommentar am selben Tag :) also sind beide falsch.
erm3nda

Antworten:

112

Laut postqueue (1) können Sie einfach postqueue -fIhre Mail-Warteschlange leeren . Wenn die E-Mails nach dem Leeren der Warteschlange nicht zugestellt werden, sondern in die Warteschlange gestellt werden, möchten Sie möglicherweise Ihre E-Mail-Protokolle auf Fehler überprüfen.

Ein Blick auf postsuper (1) könnte ebenfalls hilfreich sein. Möglicherweise sind die Nachrichten in der Warteschleife und müssen zuerst freigegeben werden.

joschi
quelle
36

postqueue -fsollte arbeiten. Wenn nicht, hat es einen guten Grund dafür. Überprüfen Sie die Protokolle. Auch pfqueue ist ein sehr nützlicher Befehl für Mail - Spool - Inspektion.

Janne Pikkarainen
quelle
15

sendmail -q Versucht die Zustellung aller Mails in der Warteschlange sofort erneut.

das-wabbit
quelle
Ist das nicht dasselbe wie postqueue -f ausführen?
Dalibor Filus
2
@NoICE ist es. In den Dokumenten : -q Versucht, alle Nachrichten in der Warteschlange zuzustellen. Dies wird durch Ausführen des Befehls postqueue (1) implementiert.
the-wabbit
Ich habe das nicht überprüft, aber es scheint, dass -f Flush und -q Queue ist. Man versucht dann den anderen zu senden einfach die Warteschlange zu säubern. Es ist besser zu versuchen zu liefern, denke ich.
erm3nda
1
@ erm3nda Du solltest zumindest zuerst die Manpages überprüfen. Auf der postqueueManpage: "-f Leere die Warteschlange: versuche, alle in der Warteschlange befindlichen E-Mails zuzustellen. Diese Option implementiert den traditionellen Befehl" sendmail -q ", indem du den Postfix qmgr (8) -Dämon kontaktierst." => Sie sind synonym und machen genau das gleiche. "
Johannes H.
@JohannesH. Doh ... Entschuldigung, Sie haben Recht, ich sollte es lesen. Danke für die Verbesserung.
erm3nda
4

postqueue -s domain.tldsollte dazu führen, dass der Backup-Relay-Computer alle E-Mails für Ihre Site löscht. Die Standardeinstellung für Postfix ermöglicht das Leeren pro Site für alle Domänen in relay_domains. postqueue -fDies wird auch durchgeführt, es werden jedoch auch E-Mails für externe Sites gesendet, dh es wird mehr getan, als Sie benötigen.

Wie stellen Sie fest, dass die Mail nicht zugestellt wurde? Befinden sie sich noch auf dem Sicherungshost oder wurden sie an den Haupthost gesendet und sind dann verloren gegangen?

araqnid
quelle