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 ...


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.


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.


15

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


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?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.