Schlagwort-Archive: Postfix Mail Transfer Agent

Postfix ist ein Mail Transfer Agent für Unix und Unix-Derivate. Die Software sollte zum Entwicklungszeitpunkt eine kompatible Alternative zu Sendmail sein.

Mail in Postfix Queue zu Empfänger umleiten

Postfix E-Mail bleibt in der Warteschlange hängen, die E-Mail soll nun 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.

Mail aus Postfix Queue senden – so geht’s

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

Nachdem die E-Mail nun extrahiert ist, kann man diese an einen anderen Empfänger als das Original senden.

$ 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 an die neue E-Mail-Adresse bestätigt wurde, kann die E-Mail aus der Postfix Warteschlange 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 anderen Empfänger zuzustellen, ebenfalls können verbleibende E-Mail aus der Warteschlange zur System Hygiene wieder gelöscht werden.

Weiterleiten von Postfix-Alias ​​an dev-null

Postfix Virtual Alias do-not-reply Weiterleitung an /dev/null

In Situationen bei diesen E-Mail-Adressen vom Typ „do-not-reply“ versendet werden, dabei das Postfach in regelmäßigen Abständen geleert werden müsste, oder es soll das Postfach erst gar nicht geben, gibt es dazu für eingehende E-Mails die einfache Möglichkeit, die verwendung eines Postfix-Alias und Virtual Alias mit Weiterleitung auf das Nullgerät – /dev/null.

Die übliche Lösung besteht also durch Weiterleitung an /dev/null. In einem Lokalen-Setup kann dies in /etc/aliases gemacht werden.

do-not-reply:    /dev/null

Wenn jedoch virtuelle Postfix-Domains verwendet werden, wird es etwas aufwendiger. Bei virtuellen Domänen Benutzern können E-Mails nicht an eine Datei weitergleitet werden. Es muss an einen Benutzer oder eine E-Mail-Adresse gehen, hierzu wird ein Alias-Benutzer in /etc/aliases hinzugefügt.

devnull:    /dev/null

Danach wird der neue Alias in der aliases.db hinzugefügt.

$ newaliases

Der Alias zeigt auf ein Virtual Domain Alias in /etc/postfix/virtual.

do-not-reply@foo.com    devnull

Hinweis: Standardmässig ist die Sendmail Datei aliases unter /etc, für Postfix wird aliases oft kopiert unter /etc/postfix, dazu sich vergewissern was in /etc/postfix/main.cf definiert ist bei alias_maps.

alias_maps = hash:/etc/aliases
oder
alias_maps = hash:/etc/postfix/aliases

Danach führt man postmap aus.

$ postmap /etc/postfix/virtual

und aktiviert die Postfix Änderung.

$ postfix reload

Wie weiss man ob die Änderung funktioniert!
Mit dem folgenden Befehl kann überprüft werden, ob der Alias ​​ordnungsgemäß eingerichtet wurde.

$ postmap -q do-not-reply@foo.com /etc/postfix/virtual

Es wird folgende Ausgabe gemacht.

$ devnull