* 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