Moin,
leider kann man Postfix nicht sagen »probier’s lokal, ansonsten extern«, aber es gibt Umwege.
Der Fall »alle E-Mails über einen externen Server zustellen, auch wenn die Domäne als lokale Domäne angesehen wird« hat den Nachteil, dass keinerlei E-Mails lokal zugestellt werden. Falls das auch nicht benötigt wird, dann sollte eine Domäne gar nicht erst als lokal konfiguriert werden. Trotzdem kann man das Zustellen über einen anderen Server erzwingen, indem für die Domäne ein Eintrag in der transport_maps angelegt werden. Dieser sieht so aus:
domain.int smtp:externer.serv.er
Unter UCS gibt’s dafür UCR-Variablen (»mail/maps/transport/…«), also die Datei nicht direkt editieren.
Geht es weiterhin darum, nur einige wenige Zieladressen an einen externen Server schicken, so kann man evtl. für diese einzelnen E-Mail-Adressen transport_maps-Einträge pflegen. Dann wäre nichts weiter zu tun.
Leider ist die Situation oft genau umkehrt: generell gibt es beliebig viele E-Mails in der Domäne, die an den externen Server geschickt werden müssen, und wir haben keine Kontrolle darüber, welche das sind, sprich manuelle Pflege derjenigen, die nicht bei uns liegen, ist nicht machbar. Was wir aber unter Kontrolle haben, ist die Liste der User, die lokal existieren, das sind schlicht diejenigen im UCS-LDAP.
Solche Fälle sind problematisch. Postfix muss wissen, welche E-Mail-Adressen in einer lokalen Domäne existieren, ansonsten lehnt der die Annahme ab. Das gilt auch für Adressen, die keine lokalen Postfächer haben. Wenn also beispielsweise in einer Umgebung, in der sowohl ein Exchange- als auch ein Zarafa-Server für dieselbe Domäne zum Einsatz kommen (letzterer unter UCS), so muss Postfix so konfiguriert werden, dass
[ul][li]die Lookups »existiert Ziel lokal?« für beide Fälle funktionieren und[/li]
[li]die Entscheidung »wohin schicke ich diese Mail?« anhand der Information, in welchem Verzeichnis der User existiert, getroffen wird.[/li][/ul]
Für das oben genannte Beispiel, bei dem man direkt per LDAP das AD abfragen kann, kann man eine Konstruktion bauen, in der der Check nach lokal existieren Accounts sowohl an das AD als auch an das LDAP geht (Stichpunkt local_recipients_maps). Weiterhin muss man dann die transport_maps mit LDAP-Abfragen aufbohren, die als Ergebnis für alle AD-User ein »smtp:exchange.server.ip« liefern.
Haben wir aber eine andere Situation, z.B. wenn wir keine Möglichkeit haben, die lokal nicht existierenden BenutzerInnen aufzulisten, so wird’s kompliziert. In so einem Fall rate ich eher dazu, die Domäne eben nicht lokal zu halten, sondern auf dem UCS nur eine Dummy-Domäne zu verwenden, beispielsweise: wenn die echte Domäne real.domain lautet, dann wird für die UCS-User dummy.domain genommen. Zusätzlich kann dann durch dynamisch via LDAP-Abfragen erzeugtes Umschreiben (virtual_alias_maps) von Envelope-Empfänger-Adressen die lokal existierenden User auf ihre dummy.domain-Adressen erfolgen, wodurch erreicht wird, dass die E-Mails auf dem lokalen Server verbleiben.
Zusammenfassend: ja, es geht, aber wie hängt der Situation ab, und trivial ist es leider in keinem Fall.