Lösungen für den E-Mail-Versand an zwei verschiedene Relay-Hosts (Smart-Hosts) bei unterschiedlichen Absenderdomänen in Verbindung mit MS-Exchange-2003.

Das Problem: Unser Kunde nutzt zwei E-Mail-Domänen, die er beide über seinen vorhandenen MS-Exchange-2003-Server laufen lassen möchte. Das ausführlichere Szenario lautet wie folgt: Es gibt die Domänen domäne1.de und domäne2.com. Ein Benutzer, nennen wir ihn Meyer, möchte über beide Domänen E-Mails empfangen und auch versenden. Er soll also die E-Mail-Adressen meyer@domäne1.de und meyer@domäne2.com besitzen.

Der Empfang von beiden E-Mail-Adressen wäre mit Exchange relativ problemlos möglich. Es muss lediglich eingestellt werden, dass der Exchange-Server für beide Domänen zuständig ist und beim Benutzer könnten beide E-Mail-Adressen eingetragen werden. Der alternative Versand über die Adressen ist damit jedoch unmöglich: Exchange versendet immer über die Haupt-E-Mail-Adresse und dies kann eben nur eine sein. Die einzige Lösung hier ist also, einen zweiten “Dummy-Benutzer” einzurichten. Somit bekommt der echte Benutzer “meyer” die E-Mail-Adresse meyer@domäne1.de und der zweite Dummy-Benutzer die E-Mail-Adresse meyer@domäne2.com. Beim Dummy-Benutzer wird ein “Senden-als”-Recht (und natürlich die sonstigen Rechte) für den normalen Benutzer im Exchange eingerichtet. Der normale Benutzer kann also das Postfach des Dummy-Benutzers bei sich einbinden und auch als Dummy-Benutzer und somit mit der Adresse meyer@domäne2.com senden.

Damit wäre das Problem gelöst – wären für die beiden Domänen domäne1.de und domäne2.com nicht unterschiedliche Provider und unterschiedliche Smarthosts zuständig. Mails mit der Absenderadresse der domäne1.de müssen also an den Smarthost mail.domäne1.de geliefert werden und Mails mit der Absenderadresse der domäne2.com an den Smarthost mail.domäne2.com. Es muss also ein Mailrouting in Abhängigkeit von der Absenderadresse durchgeführt werden, also ein “Sender-Based-Routing”. Ein eigentlich, zumindest in der Unix-/Linux-Welt alltäglicher Fall – für den Exchange 2003 jedoch eine nicht sinnvoll lösbare Herausforderung: Der Exchange 2003 beherrscht dieses Verfahren nicht. Erst ab Exchange 2007 gibt es diese Möglichkeit und auch hier nur mit Zusatzprodukten.

Mit dem Exchange 2003 gibt es nur eine technische Möglichkeit, das Problem zu lösen: Die Einrichtung von zwei SMTP-Konnektoren und die Zuordnung der beiden Benutzer zu den Konnektoren über die Rechteverwaltung: Der normale Benutzer mit der E-Mail-Adresse meyer@domäne1.de bekommt also nur das Recht auf den SMTP-Konnektor für den Smarthost mail.domäne1.de zuzugreifen und der Dummy-Benutzer mit der E-Mail-Adresse meyer@domäne2.com nur das Recht für einen zweiten SMTP-Konnektor für den Smarthost mail.domäne2.com. Offen gesagt, ein ziemlich übler Workaround, dies über die Rechteverwaltung zu realisieren, aber möglich.

Da wir es als nicht richtig empfunden hätten, den Kunden zu einem Upgrade des Exchange zu raten – schließlich hätte der Kunde außer Kosten davon nicht viel gehabt – und die skizzierte Rechtelösung von uns als schmutzig angesehen wurde, haben wir uns für folgende Lösung entschieden:

Beim Kunden vorhanden lief noch eine Linux-Maschine. Hier war es geradezu trivial, kurz ein Postfix als SMTP-Server zu installieren. Postfix beherrscht mit dem Paramater sender_dependent_relayhost_maps bzw. bis zur Version 2.3 mit dem Parameter sender_based_routing die Möglichkeit, verschiedene Smarthosts für verschiedene Absender vorzusehen. Wir haben also beim Kunden einen Postfix als Smarthost in Betrieb genommen, der in Abhängigkeit von der Absenderkennung die Mails nun an die richtigen Smarthosts verteilt. Der Exchange-2003-Server schickt nun alle Mails an seinen neuen Smarthost, den Linux-Rechner.

Zur Ehrenrettung des Exchange 2003 sei noch angemerkt, dass Postfix das Sender-Based-Routing auch erst seit der Version 2 beherrscht, die Ende 2002 erschienen ist.