invis_server_wiki:upgrade:imap-migration

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
invis_server_wiki:upgrade:imap-migration [2019/02/21 08:50]
flacco angelegt
invis_server_wiki:upgrade:imap-migration [2020/06/05 16:38]
flacco [Beliebiger IMAP-Server zu Kopano]
Zeile 10: Zeile 10:
 ===== Beliebiger IMAP-Server zu Dovecot ===== ===== Beliebiger IMAP-Server zu Dovecot =====
  
 +In diesem Fall ist die Software //​**offlineimap**//​ das Mittel der Wahl, es ist in vermutlich jeder Linux-Distribution enthalten.
 +
 +//​**offlineimap**//​ benötigt eine Konfigurationsdatei namens <​file>​.offlineimaprc</​file>​. Diese muss im Home-Verzeichnis des Users angelegt werden, der die Migration durchführt. In aller Regel dürfte dies der Benutzer **root** sein. Hier ein Beispiel:
 +
 +<​code>​
 +[general]
 +accounts = privat
 +maxsyncaccounts = 1
 +[Account privat]
 +remoterepository = Quelle
 +localrepository = Ziel
 +[Repository Quelle]
 +type = IMAP
 +remotehost = localhost
 +remoteuser = heinzb
 +remotepass = password
 +ssl = no
 +maxconnections = 1
 +readonly = true
 +
 +[Repository Ziel]
 +type = IMAP
 +remotehost = 192.168.42.10
 +remoteuser = heinzb
 +remotepass = p@ssw0rd
 +ssl = no
 +maxconnections = 1
 +</​code>​
 +
 +Gegebenenfalls müssen zwischen Quelle und Ziel Übersetzungen von Ordnernamen stattfinden. Weiterhin können sich die IMAP-Namensräume sowie die unterstützten Zeichensätze beider IMAP-server voneinander unterscheiden. Nachfolgend ein altes Beispiel einer Übersetzungskonfiguration,​ die Notwendig war um von einem Dovecot-IMAP-Server hin zu einem (alten) Zarafa Server zu migrieren:
 +
 +<​code>​
 +...
 +nametrans = lambda foldername: re.sub('​^INBOX.Sent$'​ ,'​Gesendete Objekte',​
 +        re.sub('​^INBOX.Trash$'​ ,'​Gel&​APY-schte Objekte',​
 +        re.sub('​^INBOX.Drafts$',​ '​Entw&​APw-rfe',​
 +        re.sub('​^INBOX.Junk$',​ 'Junk E-Mail',​
 +        foldername))))
 +...
 +</​code>​
 +
 +Eingefügt war die Direktive ''​nametrans''​ in der Konfiguration des Quell-Servers.
 +
 +**Erläuterung**
 +
 +Zarafa, wie auch Kopano verwendet lokalisierte Ordnernamen in der Sprache des jeweiligen Postfachs. Weiterhin unterstützte Zarafa kein UTF-8. Innerhalb des IMAP-Setups auf Dovecot-Seite wurden die Standard-Ordner für Entfürfe, Spam und der Papierkorb als Unterordner der Inbox geführt und der Verzeichnistrenner des IMAP-Namensraums ist der Punkt. Auf Zarafa-Seite hingegen liegen die genannten Standardordner parallel zur Inbox auf der gleichen ​ Verzeichnisebene. Alle genannten Unterschiede werden mit der ''​nametrans''​ Direktive übersetzt.
 +
 +Letztlich werden ein paar Synchronisationsversuche notwendig sein, bis es reibungslos läuft. Im Idealfall ist keine Übersetzung erforderlich.
 +
 +Hier noch eine Übersetzungstabelle:​
 +^Umlaut^Code^
 +|ä| &AOQ-|
 +|ö| &APY-|
 +|ü| &APw-|
 +|Ä| &AMQ-|
 +|Ö| &ARN-|
 +|Ü| &ANw-|
 +|ß| &AN8-|
 +
 +Auf Quellseite muss die Direktive:
 +
 +<​code>​
 +readonly = true
 +</​code>​
 +
 +gesetzt werden, da //​**offlineimap**//​ ansonsten eine bidirektionale Synchronisation durchführt.
 +
 +Es kann nicht schaden, vor der Synchronisation leere IMAP-Ordner zu entfernen. Im Falle von "​Maildirs"​ auf der Quell-Seite kann das einfach im Dateimanager erfolgen. Im Falle von Cyrus ist ein angeschlossener Mail-Client zum Aufräumen erforderlich.
 +
 +Gestartet wird die Synchronisation einfach durch den Aufruf des Kommandos //​**oflineimap**//​ ohne weitere Optionen und Parameter. //​**offlineimap**//​ führt Buch über die Synchronisation und ist daher in der Lage auch unterbrochene Synchronisationen wieder aufzunehmen.
 +
 +Soll die Synchronisation im Hintergrund ablaufen, können Sie das mit dem Kommando //​**nohup**//​ erreichen:
 +
 +<​code>​
 +invis:~ # nohup offlineimap &
 +</​code>​
 +
 +Ziel der Buchführung ist ein Verzeichnis unter dem Namcen <​file>​.offlineimap</​file>​ welches direkt im Home-Verzeichnis des Users angelegt wird, der die Synchronisation durchführt.
 +
 +Es ist möglich in einem Durchlauf gleich eine Reihe von Postfächern zu synchronisieren. Wenn Sie (so wie ich) lieber Schritt für Schritt vorgehen, empfiehlt es sich nach jeder Synchronisation das Kontrollverzeichnis umzubenennen.
 ===== Beliebiger IMAP-Server zu Kopano ===== ===== Beliebiger IMAP-Server zu Kopano =====
 +
 +Kopano bringt mit //​**kopano-migration-imap**//​ ein eigenes Migrationswerkzeug mit.
 +
 +<​code>​
 +invis:~ nohup kopano-migration-imap ​ --automap --host1 mailserver212.example.de --tls1 --user1 info@ffirma.org --password1 supergeheim --delete --host2 localhost --tls2 --user2 info --password2 '​p@$$w0rd'​ --logfile ./​info-migration.log &
 +</​code>​
 +
 +Etwas komplizierter wird es, wenn die ''​automap''​ Option nicht genügt um die Namen der Quell-Ordner den Namen der Zielordner zuzuordnen. Dafür kennt //​**kopano-migrate-imap**//​ unter anderem die Option ''​f1f2'',​ die in einer Befehlszeile mehrfach vorkommen darf:
 +
 +<​code>​
 +invis:~ kopano-migration-imap ​ --automap --f1f2 "​INBOX.Papierkorb"​="​Gel&​APY-schte Objekte"​ --f1f2 "​INBOX.Ausgang"​="​Gesendete Objekte"​ --f1f2 "​INBOX.Entwurf"​="​Entw&​APw-rfe"​ --host1 host1.mailserver212.example.de --tls1 --user1 user1 --password1 '​supergeheim'​ --host2 localhost --user2 hbecker --password2 '​p@$$w0rd'​ --logfile ./​hbecker-migration.log
 +</​code>​
 +
 +Im Beispiel zu sehen ist einerseits das Inbox-Unterordner der Quellseite, in Stammordner der Zielseite übersetzt werden und, dass Umlaute nicht als solche geschrieben werden dürfen. Übersetzungstabelle siehe oben.
  • invis_server_wiki/upgrade/imap-migration.txt
  • Zuletzt geändert: 2020/06/06 15:08
  • von flacco