E-Mail in Postfix Queue zu Empfänger umleiten mit postsuper

0
(0)

Postfix E-Mail bleibt in der Warteschlange (queue) hängen, die E-Mail soll nun mit postsuper und postcat an einen anderen Empfänger umgeleitet werden.

Dieses Szenario kann in Erscheinung treten, wenn zum ursprünglichen Empfänger keine E-Mails zugestellt werden können, zum Beispiel mit Erreichen der Mailbox Speicher Limite, oder der Server mit Fehler antwortet.

Hier kann es hilfreich sein, die E-Mail vorübergehend an einen anderen Empfänger zu senden. Der Beitrag zeigt die Schritte, um eine in der Postfix Queue verbleibende E-Mail an einen alternativen Empfänger zu senden.

E-Mail auf on-hold mit postqueue postsuper

Zuerst sucht man in der Postfix Queue die Queue-ID der betreffenden E-Mail, diese man an eine andere Empfänger Adresse senden möchte.

$ postqueue -p | grep 'john@example.org' -B 2

  Der Parameter -B 2 gibt zusätzlich zwei Zeilen vor gesuchter Parse aus.

Die Ausgabe kann in etwa wie die folgende aussehen.

BCD2C3035D31!   37023 Thu Feb 17 08:59:55  suite102@mailings.daydeal.net
        (connect to 12.34.56.78[12.34.56.78]:25: Connection timed out)
                             john@example.org

Hier wurde eine E-Mail an john@example.org gesendet, die ich nun an eine andere Adresse zustellen möchte. Die Queue-ID ist BCD2C3035D31 die wir im weiteren Verlauf benötigen.

Alternativ lassen sich auch alle E-Mails jeder Postfix Queue auflisten.

$ mailq

Um zu verhindern dass Postfix versucht die E-Mail in der Zwischenzeit auszuliefern, setzen wir diese in Wartestellung mit -h auf on hold.

$ postsuper -h BCD2C3035D31
postsuper: BCD2C3035D31: placed on hold
postsuper: Placed on hold: 1 message

  Die E-Mails werden mit on hold nicht gelöscht. Das Ausrufezeichen (!) gibt an, das die Nachricht in Wartestellung ist.

Nun extrahiert man die E-Mail und speichert sie in eine temporäre Datei.

$ postcat -qbh BCD2C3035D31 > /tmp/email.eml

E-Mail aus Postfix Queue senden

Nachdem die E-Mail nun extrahiert ist, kann man diese aus der queue an einen anderen Empfänger senden, mit Postfix postsuper und sendmail.

$ sendmail -f john@example.org mike@domain.org < /tmp/email.eml

Die E-Mail wird von john@example.org an mike@domain.org gesendet.

Die Postfix Deffered Queue nach aufgeschoben E-Mails durchsuchen.

$ postqueue -vp

Nachdem die Zustellung mit postsuper und sendmail an die neue E-Mail-Adresse bestätigt wurde, kann die E-Mail aus der Postfix queue gelöscht werden.

$ postsuper -d BCD2C3035D31
postsuper: BCD2C3035D31: removed
postsuper: Deleted: 1 message

Die temporäre Datei /tmp/email.eml löschen.

$ rm -f /tmp/email.eml

Hilfreiche Postfix Kommandos

  In die E-Mail schauen mit postcat.

$ postcat -vq BCD2C3035D31

E-Mails freigeben, die in die Warteschleife gelegt wurden.

$ postsuper -H BCD2C3035D31
postsuper: BCD2C3035D31: released from hold
postsuper: Released from hold: 1 message

Warteschlange leeren, es wird versucht alle in der Warteschlange befindlichen E-Mails zuzustellen.

$ postqueue -f

Alle E-Mails in der Postfix deffered queue löschen.

$ postsuper -d ALL deferred

Conclusion

Wie in diesem Beitrag aufgezeigt wird, ist es möglich E-Mails aus der Postfix Warteschlange nach auf Hold setzen, diese temporär an andere Empfänger zu senden. Ebenfalls werden verbleibende E-Mails aus der Postfix Queue zur System Hygiene wieder gelöscht.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert