Teil 12 der grommunio-2026-Serie zeigt eine generische IMAP-Migration nach grommunio mit imapsync. Getestet wurde der komplette Ablauf mit Source-Inventur, vorbereitetem grommunio-Ziel, Initial Sync, Delta Sync, Resume-Test, Bulk-Lauf und Web-Validierung.
Kurzüberblick
Source: isolierter Dovecot-IMAP-Server mit realistischen Testmailboxen.
Target: grommunio Appliance 2026.06.1 mit gromox 3.10.123.
Tooling: imapsync 2.229 direkt aus den Paketen grommunio-imapsync und imapsync.
Ergebnis: Initial Sync, Delta Sync, Idempotenz, Resume, Bulk und Web-Validierung sind erfolgreich abgeschlossen.
Was IMAP migriert und was nicht
IMAP migriert Mailbox-Inhalte, Ordnerstrukturen, typische Message-Flags, interne Nachrichtendaten und Anhänge. IMAP migriert nicht automatisch Kalender, Kontakte, Aufgaben, serverseitige Regeln, Sieve-Regeln, Delegationen, Shared-Mailbox-Rechte, Public Folders, GAL, Identitäten, Passwörter oder mobile Geräteprofile.
Getestete Umgebung
- grommunio-release 2026.06.1
- gromox 3.10.123
- grommunio-imapsync 2.229
- imapsync 2.229
- Source-IMAP per Dovecot im isolierten Lab
Source-Baseline
Die Source-Mailbox enthielt Inbox, Sent, Drafts, Trash, Junk, Archive, Custom Folder, Nested Folder, gelesene und ungelesene Nachrichten, markierte Nachrichten, historische Datumswerte, HTML, Plain Text, Anhänge und UTF-8-Betreffzeilen.
{"source": "alice@example.test","state": "before initial sync","totalMessages": 12,"folders": {"INBOX": {"messages": 6,"unread": 4,"flagged": 1,"sampleFlags": ["\\Recent","\\Seen \\Recent","\\Flagged \\Recent"]},"Drafts": {"messages": 1,"sampleFlags": ["\\Draft \\Recent"]},"Sent": {"messages": 1,"sampleFlags": ["\\Seen \\Recent"]},"Trash": {"messages": 1,"sampleFlags": ["\\Seen \\Recent"]},"Junk": {"messages": 1,"sampleFlags": ["\\Recent"]},"Projects": {"messages": 1,"sampleFlags": ["\\Recent"]},"Projects/2024": {"messages": 1,"sampleFlags": ["\\Answered \\Recent"]},"Archive": {"messages": 0}},"attachments": ["migration-proof.txt","larger-attachment.bin"]}
grommunio-Ziel vorbereiten
Vor dem Sync wurden Domain, Benutzer, Mailboxen, Passwörter, IMAP-Rechte und Web-Zugriff vorbereitet. imapsync legt keine vollständige grommunio-Identity-Struktur an.
{"target": "alice@example.test","state": "before initial sync","totalMessages": 0,"folders": {"INBOX": 0,"Drafts": 0,"Sent Items": 0,"Deleted Items": 0,"Junk Email": 0}}
imapsync auf grommunio prüfen
rpm -q grommunio-imapsync imapsyncimapsync --version
In diesem Lab war imapsync über grommunio-Pakete vorhanden. Der getestete Hauptweg ist deshalb imapsync direkt auf der Appliance.
Initial Sync
imapsync --host1 source.example.test --port1 993 --ssl1 --user1 alice@example.test --passfile1 /root/imapsync-lab/secrets/alice-source.pass --host2 mail.example.test --port2 993 --ssl2 --user2 alice@example.test --passfile2 /root/imapsync-lab/secrets/alice-target.pass --automap --subscribe
Initial sync: PASSHost1 -> Host2: source IMAP -> grommunio IMAPMessages transferred : 12Messages skipped : 0Detected errors : 0Return value : 0 (EX_OK)Folder mapping : Sent -> Sent Items, Trash -> Deleted Items, Junk -> Junk Email
Delta Sync und Idempotenz
Nach dem Initial Sync wurden zwei neue Inbox-Nachrichten, ein neuer Ordner und eine Flag-Änderung in der Source erzeugt. Der zweite imapsync-Lauf übernahm nur die Delta-Daten und duplizierte den Altbestand nicht.
{"deltaSync": "PASS","transferred": 3,"skipped": 12,"errors": 0,"targetAfterDelta": {"totalMessages": 15,"flagged": 3,"folders": {"INBOX": {"messages": 8,"flagged": 2,"sampleFlags": ["\\Flagged","\\Seen",""]},"Delta/NewFolder": {"messages": 1,"flagged": 1,"sampleFlags": ["\\Flagged"]},"Drafts": {"messages": 1,"sampleFlags": ["\\Draft"]},"Projects/2024": {"messages": 1,"sampleFlags": ["\\Answered"]}}}}
Anhang und Web-Validierung
Nach der Migration wurde grommunio Web geöffnet. Die migrierte Ordnerstruktur, die Delta-Mail und eine Nachricht mit Anhang waren sichtbar.
Resume, Bulk und Negativtest
Ein Lauf wurde absichtlich unterbrochen und anschließend erneut gestartet. Der Rerun beendete die Mailbox vollständig ohne unkontrollierte Duplikate. Zusätzlich wurden mehrere Benutzer nacheinander synchronisiert und ein falsches Source-Passwort als Negativtest geprüft.
Resume test: PASSInterrupted first run: intentionally stoppedRerun transferred : 179Rerun skipped : 3Final target count : 182/182 messagesDetected errors : 0Return value : 0 (EX_OK)
Negative test: PASSScenario : wrong source passwordResult : source login rejectedIMAP response: NO [AUTHENTICATIONFAILED] Authentication failedReturn value : 161 (EXIT_AUTHENTICATION_FAILURE_USER1)
Cutover-Modell
- Initial Sync vor dem Umschaltfenster ausführen.
- Zielbenutzer und grommunio Web testen.
- Mailflow separat umstellen; MX ist nicht imapsync.
- Benutzerzugriff auf die Source kontrollieren oder einfrieren.
- Final Delta Sync ausführen.
- grommunio Web und Clients validieren.
Ergebniskontrolle / Technische Abnahme
| Prüfbereich | Prüfung | Erwartetes Ergebnis | Status |
|---|---|---|---|
| Tooling | grommunio-imapsync und imapsync prüfen | imapsync ist auf der Appliance nutzbar | PASS |
| Initial Sync | Pilot-Mailbox synchronisieren | Ordner, Mails, Flags, Daten und Anhänge sind im Ziel vorhanden | PASS |
| Delta Sync | Neue Source-Mails und Flag-Änderung übernehmen | Nur Delta wird ergänzt, keine Duplikate | PASS |
| Resume | Unterbrochenen Lauf wiederholen | Rerun vervollständigt die Mailbox | PASS |
| Bulk | Mehrere Benutzer synchronisieren | Weitere Postfächer werden erfolgreich migriert | PASS |
| Web | grommunio Web prüfen | Migrierte Mails, Ordner und Anhänge sind sichtbar | PASS |
Tooling
- Prüfung
- grommunio-imapsync und imapsync prüfen
- Erwartetes Ergebnis
- imapsync ist auf der Appliance nutzbar
- Status
- PASS
Initial Sync
- Prüfung
- Pilot-Mailbox synchronisieren
- Erwartetes Ergebnis
- Ordner, Mails, Flags, Daten und Anhänge sind im Ziel vorhanden
- Status
- PASS
Delta Sync
- Prüfung
- Neue Source-Mails und Flag-Änderung übernehmen
- Erwartetes Ergebnis
- Nur Delta wird ergänzt, keine Duplikate
- Status
- PASS
Resume
- Prüfung
- Unterbrochenen Lauf wiederholen
- Erwartetes Ergebnis
- Rerun vervollständigt die Mailbox
- Status
- PASS
Bulk
- Prüfung
- Mehrere Benutzer synchronisieren
- Erwartetes Ergebnis
- Weitere Postfächer werden erfolgreich migriert
- Status
- PASS
Web
- Prüfung
- grommunio Web prüfen
- Erwartetes Ergebnis
- Migrierte Mails, Ordner und Anhänge sind sichtbar
- Status
- PASS
Fazit
Die generische IMAP-Migration zu grommunio ist mit imapsync reproduzierbar abnahmefähig, wenn Zielbenutzer vorbereitet sind, Passwortdateien statt Klartext in der Shell verwendet werden, Ordner-Mapping kontrolliert wird und ein Delta-/Cutover-Modell sauber geplant ist.



