Hallo Posftix Gemeinde,
danke für die vielen Hinweise. Besonders auf den von Patrick wäre ich so nicht gekommen. Er fordert ein grundlegendes umgestalten meiner Postfix-Konfigurationen, macht aber sehr viel Sinn. Mal sehen, ob ich dass bis zum Umstellungstermin am Montag realisieren kann. Ansonsten würde ich die Mails mit einem Mapping wohl aktiv in die Hold-Queue legen und diese anschließend einfach flushen.
Auf die Idee, Postfix sich selbst zu überlassen und zu sehen, wie es reagiert, wenn es die Mail nicht weiterleiten kann bin ich auch schon gekommen. Das muss ja funktionieren, solange die Lifetime hoch genug ist. Aber wie gesagt, ich war auf der Suche nach ein paar Denkanstößen für eine elegantere Lösung.
Dafür allen vielen Dank!
Stephan Jacob
Otto-von-Guericke Universität Magdeburg Universitätsrechenzentrum (URZ)
Universitätsplatz 2 Gebäude 26 - 035
39106 Magdeburg
Tel.: 0391-67-58572 Fax: 0391-67-11134
-----Ursprüngliche Nachricht----- Von: postfix-users [mailto:postfix-users-bounces+stephan.jacob=ovgu.de@de.postfix.org] Im Auftrag von Patrick Ben Koetter Gesendet: Mittwoch, 17. Juli 2013 22:01 An: postfix-users@de.postfix.org Betreff: Re: [postfix-users] Postfix - Weiterleitung an speziellen Mailserver unterbinden
* Stephan Jacob Stephan.Jacob@ovgu.de:
Hallo Postfix Gemeinde,
an der Uni Magdeburg können die Nutzer ihr Postfach auf einen von drei Servern haben:
entweder sie sind auf exchange
entweder sie sind auf cyrus
entweder sie sind in der Medizin (dort läuft auch Exchange)
Wenn eine Mail auf unserem Relay eingeht (dort läuft Postfix) wird über den virtual_alias_maps Parameter eine LDAP-Abfrage initiiert. Im LDAP steht dann als Forwarding-Adresse entweder exchange, cyrus oder medizin (je nachdem wo der Kollege sein Postfach hat). Die Mail wird
entsprechend weitergeleitet.
Du verwirfst die Idee mit den virtual_alias_maps, denn Dein Server ist ein Boundary Filter, der Mails filtern und routen, aber nicht lokal in eine Storage (virtual_alias...) legen soll.
Dann baust Du Dir drei services in der master.cf. Kopier den relay-Service und nenne sie: exchange, cyrus und medizin.
Als nächstes nimmst Du die ovgu-Domain - und ihre gefühlten 20.000 Zusatzdomains - in die relay_domains auf und baust Dir eine relay_recipient_maps-Abfrage, die im LDAP prüft ob der Empfänger vorhanden ist - das hält viel Spam weg.
Jetzt zum Routing. Du willst für jedes Ziel einen eigenen Service (oben schon gebaut). Nun musst Du die Leute den Zielen zuordnen.
Bau Dir drei transport_maps-Abfragen in LDAP, die je recipient das passende Deiner drei Ziele als Wert zurückliefern wird. Warum drei Abfragen? Jede Abfrage lieft ein modifiziertes Ergebnis zurück. Für die Modifikation nimmst du den $result_format Parameter - der verändert das Ergebnis, das Postfix zu sehen bekommt.
In der ersten Map könnte z.B. folgendes stehen:
result_format = cyrus:[ip.von.cyrus]:25
In der Zweiten:
result_format = exchange:[ip.von.cyrus]:25
In der Dritten:
result_format = medizin:[ip.von.cyrus]:25
So, jetzt hast Du für jedes Ziel einen eigenen Transport. Und jetzt kannst Du Dein eigentliches Ziel umsetzen:
Ich möchte für eine Nacht die Zustellung von Mails an die Medizin unterbinden, da dort der Server umgestellt wird. Wie mach ich das am sinnvollsten ohne das LDAP anzufassen?
Setze nach den Edits folgendes in main.cf:
defer_transports = medizin
Jetzt wird Postfix Nachrichten für alles an "medizin" annehmen und die Zustellung an "medizin" anhalten, bis Du "medizin" wieder von defer_transports entfernst.
p@rick
-- [*] sys4 AG
http://sys4.de, +49 (89) 30 90 46 64 Franziskanerstraße 15, 81669 München
Sitz der Gesellschaft: München, Amtsgericht München: HRB 199263 Vorstand: Patrick Ben Koetter, Axel von der Ohe, Marc Schiffbauer Aufsichtsratsvorsitzender: Florian Kirstein
_______________________________________________ postfix-users mailing list postfix-users@de.postfix.org http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users