Mailboxen im Maildir-Format auf neuen Server portieren

electric.larry

\''; DROP TABLE user; --
Registriert
13 Dez. 2014
Beiträge
4.484
Ort
Raum 43
Ich soll Mailboxen mehrerer (virtueller) Accounts auf einen neuen Server portieren, auf dem ich Root-Zugang bekommen sollte. Am neuen Host läuft Courier/Postfix, die Mailboxen vom alten Server werden als Zip Archive bereitgestellt. Welcher Mailserver am alten Host läuft ist mir nicht bekannt, ich wurde nur informiert, dass dort die Accounts im Maildir-Format vorliegen.

Die Verwendung von Imapsync scheint hier ausgeschlossen, weil es sich doch um mehrere Accounts handelt und die Benutzer natürlich ihre Passwörter nicht weitergeben sollen.

Auf Serverfault berichtet ein Benutzer, dass es lediglich notwendig war, die Mailboxen am neuen Host anzulegen und alle Files von einem Server zum anderen zu kopieren. Er hat aber die selben Daemons auf beiden Hosts in Verwendung.

  • Was aber ist mit den courierpop3dsizelist, courierimapsubscribed, courierimapuiddb sowie dem courierimapkeywords und courierimaphieracl Verzeichnis, wenn am alten Host Dovecot oder irgendetwas anderes rennt?
  • Genügt es die Inhalte der cur, new und benutzerdefinierten Verzeichnisse zu kopieren?
  • Werden die Index Dateien, wenn sie nicht kopiert werden können, am neuen Host automatisch erstellt?
  • Kann es bei so einem Unternehmen zu Problemen für die bereits bestehenden Mailboxen am neuen Server kommen?

Habt Ihr Erfahrung mit der "händischen" Portierung von Mailboxen? Worauf muss man achten?

Vielen Dank im Voraus!

<3
 
Hab da keine Erfahrung mit, aber mal meine Gedanken dazu :

Maildir kennt afaik keine Indexdateien, also würde ich die weglassen.

Und im Grunde ist maildir ja bloß eine mail pro datei, ohne komisches locking oder dergleichen, also sollte es eigentlich keine größeren Probleme geben. Zumal das nicht unbedingt ein neues Format ist und daher die Implementierungen im allgemeinen relativ bugfrei sein sollten.
 
  • Thread Starter Thread Starter
  • #3
Danke für die Einschätzung. Also gehst du davon aus, dass Courier diese Index Dateien dann selbst anlegt?

Was meinst du, kann man das mit einer neuen Testmailbox einfach mal versuchen, ohne dass man gleich alle anderen Benutzerkonten irgendwie in Mitleidenschaft zieht?
 
Ziemlich sicher, ja.

Und ansonsten kann ich nur sagen: "versuch mach kluch" :D
 
  • Thread Starter Thread Starter
  • #5
Heh, danke. Dann wird es also eine Operation ohne Narkose ... dein Wort in des Computergottes Ohr.
 
  • Thread Starter Thread Starter
  • #6
Grade mit einem Sysadmin von inode gesprochen, er meinte auch, dass das wie du beschreibst funktionieren wird. Lediglich die Abonnements der einzelnen Ordner müssten danach neu gesetzt werden. Indizes werden vom Mailserver selbst neu generiert, wenn man die Index-Files weglässt.

Werd das am Wochenende dann versuchen und bescheid geben.
 
  • Thread Starter Thread Starter
  • #7
Wie ich verzweifelt gehofft hatte, war die Portierung der Mailboxen problemlos im laufenden Betrieb möglich. Postfix/Courier sind hier sehr gnädig :)

Falls jemand über diesen Thread stolpert, eine kurze Beschreibung, wie wir die Mailboxen auf den neuen Server portiert haben.

Die Mission

Alle Virtuellen Mailboxen einer Domain sollten von einem Mailserver zu einem anderen übertragen werden. Auf beiden Servern werden Mailboxen im Maildir Format gespeichert. Die zugehörige Domain sollte nach der Übertragung der E-Mail-Adressen zum neuen Anbieter übernommen werden. Die Downtime, in der Mitarbeiter ihre E-Mails nicht abrufen können, sollte natürlich möglichst kurz gehalten werden.

Der Ablauf

  • Beim alten Anbieter wird der MX Record der Domain, der auf den alten Mailserver zeigt, auf einen möglichst kurzen Refresh Intervall geändert und danach einige Stunden gewartet, um die Änderungen am Zonefile in Umlauf zu bringen.
  • Am neuen Server werden für alle zu übertragenden Mailboxen neue virtuelle Mailboxen angelegt und den Benutzern Zugangsdaten zum Webmail Interface des neuen Servers geschickt.
  • Beim alten Anbieter wird dann der MX Record auf die IP Adresse des neuen Mailservers geändert. Während sich die neue IP Adresse langsam herumspricht (Refresh Intervall) kommen Mails teilweise am alten, teilweise am neuen Server an. Benutzer die über Webmailer die Mails am neuen Server abrufen, sehen vorerst ihre alten E-Mails nicht.
  • Wenn dann nach einer kurzen Zeit keine Mails mehr am alten Server eintrudeln, werden die Verzeichnisse mit den Mails gezipped und auf den neuen Server kopiert.
  • Der Verzeichnisbaum kann je nach Konfiguration unterschiedlich sein. Auf einem Server sind Mailboxen z. B. unter /home/vmail/empfaenger@adresse.org/, am anderen unter /var/vmail/domain.org/empfaengername/ abgelegt. Im jeweiligen Verzeichnis finden sich dann aber wieder die gleichen Directories: cur, .Sent, .Trash und ein paar Index und Meta Dateien. Das ./cur Verzeichnis beinhaltet alle eingegangenen Mails. Zu beachten ist, dass Unterverzeichnisse die der Benutzer selbst über den Mailclient angelegt hat, mit einem "." beginnen und somit bei einem normalen "ls" nicht angezeigt werden. Jedes der, mit einem "." im Namen beginnenden, Unterverzeichnisse enthält wiederum ein Verzeichnis ./cur in dem alle Nachrichten als einzelne Dateien liegen.
  • Alle Dateien aus den verschiedenen ./cur Directories werden dann in die entsprechenden neuen Mail-Verzeichnisse kopiert.
  • Die Index und Abo Dateien wie z. B. courierpop3dsizelist, courierimapsubscribed, courierimapuiddb werden nicht kopiert. Der Mailerdaemon erstellt die Beschreibungsfiles von selbst, wenn er die neuen Dateien im ./cur Verzeichnis sieht. Eventuelle vom Benutzer selbst erstellte Mail Verzeichnisse müssen über den E-Mail Client danach aber neu Aboniert werden.
  • Owner und Zugriffsrechte für alle kopierten Mails müssen wieder korrekt gesetzt werden, ansonsten sehen Benutzer zwar, dass es irgendwelchen alten Mails gibt, sie können diese aber nicht öffnen (z. B. chown virtmail:virtmail ./cur/*, chmod 600 ./cur/*).
  • Beim kopieren muss nicht auf das Datum oder die Filenames der jeweiligen E-Mail-Files aus den ./cur Verzeichnissen geachtet werden. Courier fischt sich diese Infos aus den E-Mail Headers, die er in den Dateien findet.
  • Die Benutzer können während des gesamten Ablaufs über Webmail oder E-Mail-Client ihre neuen Mailboxen benutzen. Sobald neue Files in die ./cur Verzeichnisse kopiert und die Zugriffsrechte gesetzt wurden, scheinen sie im E-Mail-Client auf, sobald dieser refresht.
 
Zurück
Oben