[postfix-users] Postfix - Weiterleitung an speziellen Mailserver unterbinden
Patrick Ben Koetter
p at sys4.de
Mi Jul 17 22:01:07 CEST 2013
* Stephan Jacob <Stephan.Jacob at 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 at 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
Mehr Informationen über die Mailingliste postfix-users