Migration von POP3 und IMAP4

Diese Seite beschreibt zwar primär die Wege von einem SMTP/IMAP4-basierten Mailserver nach Exchange, aber wenn Sie die Prinzipien verstanden haben, dann können Sie natürlich über fast den gleichen Weg auch die Gegenrichtung migrieren.

Wer Informationen für die Migration sucht, wird auf folgenden Seiten fündig
IMAP4 Migration
MailMig IMAP4

Sehr oft steht die Aufgabe an, Exchange in eine bestehende Unix-Umgebung einzubinden oder sogar von einem vorhandenen Unix-System nach Exchange zu migrieren. Auch hier gibt es Lösungen direkt von Microsoft als auch von Drittherstellern und Open Source Quellen.

Wenn auf dieser Seite von Unix, LINUX etc. die Rede ist, dann ist damit generell ein Mailsystem gemeint, welches mittels SMTP und Zuhilfenahme eines MTAs (mail transport agent) wie Sendmail, qmail, PostFix Mails empfängt und versendet und auf der Seite der Clients diese Nachrichten über einen MDA (Mail delivery agent) wie qpopper, Courier etc. per POP3, IMAP4 oder HTTP dem Anwender bereit stelle. In den meisten Fällen handelt es sich dabei um Mailsysteme die auf verschiedene LINUX-Distributionen basieren. Aber auch auf Windows gibt es einige Produkte, die in diese Kategorie fallen.

Koexistenz

Der parallele Betrieb von Exchange mit einem anderen SMTP-Mailserver ist sehr einfach möglich. Innerhalb einer Firma gibt es aber doch einige Dinge, die eine bessere Planung erfordern als einfach nur eine SMTP-Kommunikation:

  • Routing
    Meist werden die Mails in einem privaten Netzwerk nicht mehr per DNS-Auflösung und MX-Records auf die Mailserver gelenkt, sondern über explizite Einstellungen zum Ziel geroutet.
    Bei Exchange 2000/2003 wird dies z.B.: durch einen SMTP-Connector mit entsprechend gewähltem Adressraum durchgeführt.
  • Adressbuchabgleich
    Die Anwender interessiert nicht, ob eine Firma nun ein oder zwei Mailserver betreibt, sondern erwarten auch in diesem Fall eine problemlose Nutzung von Adressbücher. Entsprechend ist auch bei abweichenden Adressräumen ein Adressbuchaustausch häufig nicht nur erwünscht, sondern gefordert
  • Optimierte Formatübersetzung
    Zwar ist SMTP ein Standard aber auch Standards haben verschiedene Ausprägungen. Während im Internet im Zweifel der kleinste gemeinsame Standard genutzt wird, können Sie als Administrator und bei Kenntnis der Fähigkeiten der Mailserver hiervon abweichende Einstellungen vornehmen. Wenn die Anwender unter SendMail per POP3/IMAP4 ihre Mails mit Outlook oder Outlook Express abholen, dann kann es durchaus von Vorteil sein, wenn die Nachrichten von Exchange im Format "RTF" versendet werden. Damit bleiben z.B. Termineinladungen und OLE-Objekte in Nachrichten erhalten. Bei der Übertragung im Internet ist dies natürlich nicht gewollt.
  • Größen
    Beim einer Kommunikation mit dem Internet werden oft Grenzen gezogen, z.B.: dass keine ausführbaren Anlagen übertragen werden, eine Mail eine bestimmte Größe nicht übersteigt etc. Bei der Kommunikation innerhalb einer Firma ist dies natürlich zu lockern.

Für die folgende Betrachtung der möglichen Varianten unterscheide ich zwei Fälle:

  • Getrennter Adressraum
    Die Anwender in der Exchange Organisation nutzen einen anderen Domainanteil der Mailadresse als die Anwender auf dem Unix-System
  • Gemeinsamer Adressraum
    Exchange und Sendmail teilen sich die gleiche SMTP-Domäne.

Entsprechend sind die Lösungen anzusetzen.

Getrennter Adressraum

Die einfachste Koexistenz ist zu realisieren, wenn beide Mailsysteme unterschiedliche Adressräume verwenden. Diese Konstellation entspricht fast genau der Umgebung, wie sie im Internet alltäglich ist: Benutzer eine Maildomäne senden Mails an Benutzer einer anderen Maildomäne.

Sendmail

Die direkte Verbindung zwischen den Servern kann über entsprechende Einstellungen (z.B. SMTP-Connector in Exchange) erfolgen, so dass auch die Formate besser umgesetzt werden.

Gemeinsamer Adressraum

Das größte Problem bei dieser Anbindung ist, dass eine von außen eingehende Mail ohne besondere Einstellungen nicht automatisch auf den richtigen Mailserver geleitet werden kann. Zudem müssen beide Mailserver so konfiguriert werden, dass Sie Mails, die lokal nicht zustellbar sind, auf den anderen Mailserver weiter geben. Ohne entsprechende Vorkehrungen kann dies aber zu Schleifen führen, wenn ein Empfänger weder auf dem einen noch dem anderen System definiert ist. Dazu gibt es drei Modelle zu Realisierung:

Modell / Beschreibung Abbildung

Zentraler Verteiler

Ein zentrales System erhält eine Liste aller gültigen Empfänger und den dazu gehörigen Mailserver. Alle Nachrichten von extern aber auch von Intern werden an diesen Server übermittelt, welcher dann abhängig vom Empfänger diese an den korrekten Postfachserver für den jeweiligen Empfänger überträgt.

Eine solche Lösung verhindert Loops und kann unzustellbare Mails sehr früh ablocken. Allerdings muss die Liste der Empfänger sauber gepflegt werden, um unzustellbarkeitsmeldungen zu verhindern

Der Abgleich von Adressbüchern zwischen den Systemen zur Benutzung durch die Anwender ist hiervon unabhängig.

Sendmail

Verkettung

Der Betrieb eines dritten Servers ist oft nicht erwünscht. Wenn Sich die Firma dann noch im Status der Migration von einem System zu anderen befindet oder ein Mailserver die meisten Anwender betreibt, dann kann folgende Lösung geeignet sein:

Der primäre Mailserver (Hier als Beispiel Exchange) nimmt alle Nachrichten für die Domäne an und stellt lokale Empfänger zu. Alles was der Server nicht kennt, leitet er an den zweiten Server weiter. (Überlaufprinzip). Dieser sollte unzustellbare Nachrichten natürlich nicht wieder an Exchange zurück senden (Gefahr einer Schleife)

Ausgehende Mails muss der interne zweite Mailserver wieder an Exchange senden, da hier ja auf dem Exchange lokale Empfänger enthalten sein könnten. Exchange muss die Mails dieses Servers bei Bedarf natürlich als Relay in das Internet senden. Optional kann der interne zweite Server direkt an das Internet senden, wenn über ein Routing sicher gestellt ist, dass Adressen für "Firma.de" an Exchange geleitet werden.

Im Falle Exchange wird dies am besten über eine nicht autoritative Domäne in den Empfängerrichtlinien und einen Internet Mail Connector mit einem Adressraum realisiert.

Selektive Weiterleitungen

Die Verkettung hat prinzipiell das Problem, dass es zum einen zu Schleifen kommen kann und andererseits der erste Mailserver keine ihm unbekannten Empfänger ablehnen kann, da diese auf dem nach geschalteten System definiert sein könnten.

Daher gibt es eine weitere Lösung, bei der die Empfänger auf dem zweiten Mailserver eine primäre Adresse zum versand nutzen, aber zusätzlich eine zweite Adresse haben. In Exchange kann nun für jeden Anwender des zweiten Mailservers ein Kontakt angelegt werden, der alle Nachrichten an user@firma.de nach user@sendmail.firma.de über einen entsprechenden SMTP-Connector weiter leitet. Nebenbei sind damit auch alle Sendmail Empfänger im globalen Adressbuch definiert.

Ausgehende Nachrichten sollten zumindest für "@firma.de" an Exchange gesendet werden, damit diese intern bleiben. Werden Nachrichten an das Internet nicht direkt gesendet, muss der interne Mailserver in Exchange die Nutzung als Relay frei geschaltet werden.

Natürlich können Sie über diese drei Konstruktionen nicht nur Exchange mit Sendmail verbinden, sondern jeden Mailserver mit jedem anderen Mailserver. Ich kenne keinen Mailserver, der sich nicht diesbezüglich mit Leitwegen, Aliasnamen etc. konfigurieren lässt.

Adressabgleich

Offen bleibt aber in allen Fällen wieder der Abgleich der Adressbücher. Exchange und das Active Directory bieten den Anwendern an, über LDAP oder Outlook auf Adressbücher und Verteiler zuzugreifen. Auch die Anwender mit Sendmail oder einem anderen Mailsystem haben oftmals Adressbuchfunktionen. Teilweise werden diese durch LDAP-Server unabhängig vom Mailsystem bereit gestellt.

Speziell für die Exchange Anwender ist es natürlich sehr bequem, wenn Sie alle Empfänger der Firma im Adressbuch nachschlagen können. Sie müssen natürlich nun überlegen, ob sie diese Kontakte des fremden Mailsystems manuell pflegen, per Script regelmäßig importieren oder ein Metadirectory zum echten Abgleich aufsetzen. Siehe auch Verzeichnisabgleich und Verbinden von Organisationen.

Postfix als Relay einrichten

Postfix ist übrigens viel einfacher als Sendmail zu konfigurieren. Wenn Sie z.B. einem bestehenden Postfix Server beibringen wollen, dass er Mails für eine bestimmte Domäne weitergeben soll (Relay) dann reichen folgende Zeilen.

mydestination =
relay_domains = firma.de
transport_maps = hash:/etc/postfix/transport
mynetworks = ip.des.exchange.server/32

In der Datei "transport" müssen Sie angeben, wohin Nachrichten nach intern weitergeleitet werden sollen.

Wenn Sie auch noch sicherstellen wollen, dass nur gültige Empfänger angenommen werden, dann fügen Sie einfach folgende Zeile hinzu und legen die Liste der Mailadressen an. (Geht z.B.: mit VBS:SMTPList)

relay_recipient_maps = hash:/etc/postfix/validrecipients.txt

Eine ausführliche Anleitung finden Sie auch auf http://postfix.state-of-mind.de/patrick.koetter/mailrelay/

Siehe auch RCPTTO

Weitere Links