Das grundlegende Problem bei der Migration von Mailservern auf einen anderen liegt in der Tatsache, dass sich in der Regel die IP-Adressen oder sogar Rechnernamen ändern können und man dann wieder jeden Client einzeln anpassen muss. Somit wäre es doch angenehmer, die Migration möglichst unmerklich für den Enduser zu gestalten.
Durch den Einsatz eines POP3 und IMAP Proxy Dienstes auf der bekannten Konfiguration (Rechnername oder IP-Adresse) kann dieser steuern, wohin die Anfragen gehen, völlig transparent für den Endbenutzer.
Die Implementierung unter Debian gestaltet sich einfach, sofern die POP3 und IMAP Dienste auf dem zu konfigurierenden System bereits abgeschaltet sind.
Installation
apt-get install perdition
Es werden die Pakete
installiert.
Hier habe ich keine Anpassungen vornehmen müssen.
Diese Datei beschreibt die Zuordnung Benutzername zu Zielsystem.
popmap
thomasbaumann:pop.web.de
Anschließend ist diese Datei ins entsprechende hash-Format zu konvertieren. Dies erledigt das Programm make.
von Hand
/usr/bin/makegdbm popmap.gdbm.db < popmap /usr/bin/makebdb popmap.bdb.db < popmap
Mitschnitt einer POP3 Session und Anzeige der Logdatei. Man kann gut erkennen, dass trotz der Ansprache mittels telnet auf localhost die Verbindung zu pop.web.de aufgebaut wurde.
session
xm1:~# telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
+OK POP3 Ready xm1 0001b12b
Oct 19 19:41:32 xm1 perdition[19329]: Connect: 127.0.0.1->127.0.0.1
USER thomasbaumann
+OK USER tirili set, mate
PASS geheimeskennwort
+OK You are so in
Oct 19 19:41:47 wwh3 perdition[19329]: Auth: 127.0.0.1->127.0.0.1 \
user="thomasbaumann" server="pop.web.de" port="110" status="ok"
LIST
+OK
1 973
2 644
3 631
4 837
5 861
6 1442
7 831
8 1899
9 1936
.
quit
+OK
Connection closed by foreign host.
xm1:~#
Oct 19 19:42:02 xm1 perdition[19329]: Close: 127.0.0.1->127.0.0.1 \
user="tirili" received=12 sent=616
Es wird nur die in der popmap definierte Zuordnung durchgeführt. Ein Benutzername, der hier nicht existiert, kann nicht ans Zielsystem weitergeleitet werden. Allerdings kann man sich durch Verwendung der popmap.re, die Regular Expressions versteht, die Benutzerzuordnung vereinfachen.
popmap.re
# Substitution is of the form # [<username><domain_delimiter>]<server>[:<port>] #^[a-k]: localhost #^[^a-k]: localhost:110 #^user: user2@localhost #(.*)@(.*): $1_$2@localhost