Postfix: Alle ausgehenden Mail-Adressen umschreiben mit einer Ausnahme

HELP WANTED! Gelöst, siehe Update 27.10.2017 – 21:36 Ich bin aktuell auf der Suche nach einer Lösung für folgende Aufgabe:

Bei einem Kunden werden alle ausgehenden E-Mail-Adressen durch postfix auf „info@domain.tld“ umgeschrieben. Das ist so gewollt und läuft seit Jahren. Nun soll aber per Server-Eye’s MailRoundTrip ein Monitoring des E-Mail-Ablaufs erfolgen, d.h. eine Adresse darf nicht umgeschrieben werden.

Jetzt bin ich in postfix nicht so firm und alle bisherigen Versuche klappten leider nicht. Von daher hier mal ein Ruf in die Runde, ob jemand einen Tipp hat oder unterstützend mitwirken kann?

Aktuell ist es so, das via header_checks die Nachrichten umgeschrieben werden:

/^From:.*<.*@domain.tld>.*$/		REPLACE From: NAME <info@domain.tld>
/^From:.*@domain.tld.*$/		REPLACE From: NAME <info@domain.tld>
/^Reply-To:.*<.*@domain.tld>.*$/	REPLACE Reply-To: NAME <info@domain.tld>
/^Reply-To:.*@domain.tld.*$/		REPLACE Reply-To: NAME <info@domain.tld>

Ich nehme an, man könnte evtl. mit sowas wie

if !/^From:<nichtinfo@domain.tld>...
endif

arbeiten.

Das Thema habe ich zudem auch bei debianforum.de gepostet:

Postfix, alle ausgehenden Mail-Adressen umschreiben mit einer Ausnahme

Update 27.10.2017 – 21:36

Letztlich ist es ganz einfach zu lösen, nachfolgend die aktuelle header_checks-Konfiguration:

if !/^From:.*<nichtinfo@domain.tld/i

/^From:.*<.*@domain.tld>/	REPLACE From: NAME <info@domain.tld>
/^From:.*@domain.tld/		REPLACE From: NAME <info@domain.tld>
/^Reply-To:.*<.*@domain.tld>/	REPLACE Reply-To: NAME <info@domain.tld>
/^Reply-To:.*@domain.tld/	REPLACE Reply-To: NAME <info@domain.tld>

endif

Ich war also schon nahe dran, zusätzlich habe ich noch einen Fehler gemacht postmap auf die header_checks anzuwenden, was vollkommen überflüssig ist, da diese direkt ohne Umwandlung abgearbeitet wird.

Wie heisst es so schön: Knapp daneben ist auch vorbei.

Jedenfalls vielen Dank an Peer Heinlein für die Unterstützung, die Erklärungen wie auch Geduld und letztlich die Lösung dieser Aufgabe.

Danke auch an alle die Mails geschickt oder Kommentare geschrieben haben.

5 Kommentare

  • https://serverfault.com/questions/334036/postfix-how-to-apply-header-checks-only-for-specific-domains

    I am not sure if you were able to achieve what you wanted. I was testing a similar thing, needed keyword filtering, etc on per domain basis and was able to use header_checks on per domain or for the domains that I wanted using postfix’s multi instance feature.

    You create an instance, you just change the smtp port on that particular instance. You use transport_maps on the primary instance to route emails for a specific domain to the secondary instance’s smtp port. And do all the header_checks there and relay the email off!

    Vielleicht hilft eine zweite Instanz.

  • Daran wurde auch schon gedacht, erfordert aber leider wieder Aufwand beim Exchange Server (der hinterm Postfix sitzt). Der Kunde wünscht allerdings, das die aktuelle „Mail-Kette“ überwacht werden soll.
    Ob das machbar ist, ist Gegenstand der Recherche und des Aufrufs.

    Wird nun beispielsweise eine zweiter Sende-Connector (Exchange) und eine zweite Postfix-Instanz verwendet, läuft man ggf. Gefahr, das dort zwar alles ok ist, aber bei der ersten (wo alles außer Monitoring drüber läuft) eben nicht.

  • Verstehe.Als zweites hätte ich noch das hier im „Angebot“
    http://wp.subnetzero.org/?p=956

    Da müsstest du halt testen, ob das auch mit (externen) Domains geht und ob das ganze sich dann nicht in die Quere kommt.

    Auf den ersten Blick erscheint mir bypass jedenfals sinnig.

  • Amavis läuft da nicht, von daher wohl nicht anwendbar.

    Ich bin grad am Mail-Hin-und-Her-Schreibseln mit Peer Heinlein (https://www.heinlein-support.de/).

    Danke an dieser Stelle für die Unterstützung.

    Ein weiterer Versuch bzw. sein Vorschlag sieht so aus:

    if !/From:.*<adressedienichtseinsoll@domain.tld/i

    /^From:.*/ REPLACE From: NAME

    endif

    Das ist schon sehr Nahe an einem meiner Versuche dran (da fehlte nur ein „.*“ und eine „>“ war zuviel).
    Leider kommt dann:

    postmap: warning: header_checks, line 15: expected format: key whitespace value

  • Gelöst, der Beitrag wurde entsprechend aktualisiert.

Schreibe einen Kommentar

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