📍 Article principal du cluster : Mailcow 2026 : guide complet.
Vous avez 5-10 ans d’emails dans Google Workspace ou Microsoft 365. Migration vers Mailcow auto-hébergé sans perdre un message, sans interruption de service, sans drama. Ce tutoriel détaille la procédure validée chez plusieurs PME francophones via imapsync, l’outil open source de référence.
Prérequis
- Mailcow en production (voir tutoriel installation).
- DNS validé (SPF/DKIM/DMARC, voir tutoriel DNS).
- Boîtes Mailcow créées correspondant aux Google/365 (mêmes adresses).
- Mots de passe Application (App Password) Google ou MS.
- Niveau attendu : avancé.
- Temps estimé : 1 jour préparation + jours selon volume.
Étape 1 — Audit des comptes source
Pour chaque boîte à migrer :
- Adresse email exacte.
- Volume données (Google Settings → Storage, M365 OWA → Mailbox usage).
- Nombre de dossiers/labels.
- Filtres et règles à recréer manuellement.
Étape 2 — Générer App Passwords
Google Workspace
- Activer 2FA sur compte Google.
- Account → Security → App passwords.
- Generate password « Mail » pour chaque compte à migrer.
- Noter password 16 chars (utilisable une seule fois).
Microsoft 365
- Activer Modern Authentication + IMAP côté admin tenant.
- Pour chaque user : security.microsoft.com → Additional security verification → App passwords.
- Generate.
Étape 3 — Installer imapsync
Sur VPS Mailcow ou poste local :
apt install -y imapsync libio-socket-ssl-perl libio-tee-perl libfile-copy-recursive-perl libreadonly-perl libterm-readkey-perl libsys-meminfo-perl libdigest-md5-file-perl libdate-manip-perl libencode-imaputf7-perl libtest-mockobject-perl libcrypt-openssl-rsa-perl libdata-uniqid-perl libio-compress-perl libregexp-common-perl libfile-tail-perl
imapsync --version # Doit retourner > 2.0
Étape 4 — Test sur une boîte pilote
imapsync \
--host1 imap.gmail.com --port1 993 --ssl1 \
--user1 amadou.diop@old-entreprise.com \
--password1 'APP-PASSWORD-GOOGLE' \
--host2 mail.votre-entreprise.com --port2 993 --ssl2 \
--user2 amadou.diop@votre-entreprise.com \
--password2 'PASSWORD-MAILCOW' \
--automap \
--useheader 'Message-Id' \
--skipsize \
--dry # Mode dry-run pour tester
Output liste les emails qui seraient copiés. Vérifier OK puis enlever --dry pour vraie migration.
Étape 5 — Lancer migration réelle
imapsync \
--host1 imap.gmail.com --port1 993 --ssl1 \
--user1 amadou.diop@old-entreprise.com \
--password1 'APP-PASSWORD' \
--host2 mail.votre-entreprise.com --port2 993 --ssl2 \
--user2 amadou.diop@votre-entreprise.com \
--password2 'PASSWORD-MAILCOW' \
--automap \
--useheader 'Message-Id' \
--logfile /tmp/imapsync-amadou.log
Pour 5 GB de boîte, comptez 1-2 heures sur Hetzner.
Étape 6 — Migration bulk via script
#!/bin/bash
while IFS=, read -r email_old pass_old email_new pass_new; do
imapsync \
--host1 imap.gmail.com --port1 993 --ssl1 \
--user1 "$email_old" --password1 "$pass_old" \
--host2 mail.votre-entreprise.com --port2 993 --ssl2 \
--user2 "$email_new" --password2 "$pass_new" \
--automap --useheader 'Message-Id' \
--logfile "/tmp/imapsync-$(echo $email_new | cut -d@ -f1).log" &
sleep 60 # Stagger pour éviter rate limit Google
done < migration-list.csv
wait
Étape 7 — Période de bascule MX
Stratégie sans downtime :
- Avant : MX pointe Google. Tous emails arrivent Google.
- Pendant : ajouter MX secondaire Mailcow priority 20 (Google priority 10).
- Migration imapsync de l'historique.
- Bascule : Google priority 20, Mailcow priority 10. Emails arrivent Mailcow.
- Imapsync incrémental dernières 24h pour rattraper.
- Désactiver Google MX.
Étape 8 — Communication aux utilisateurs
- J-7 : annonce migration prévue.
- J-3 : envoi credentials Mailcow + URL webmail SOGo + guide configuration mobile.
- J : bascule MX.
- J+1 : webinar 30 min troubleshooting.
- J+7 : sondage satisfaction, ajustements.
Étape 9 — Configuration mobile et desktop clients
Distribuer doc :
- iPhone Mail : Réglages → Mail → Comptes → Ajouter → Autre. Manual config IMAP/SMTP.
- Android Gmail app : Add Account → Other.
- Outlook desktop : Account Settings → Add → IMAP. Outgoing SMTP avec STARTTLS.
- Apple Mail : Add Other Mail Account.
Étape 10 — Décommissionnement Google/M365
Au jour J+30 (sécurité) :
- Vérification finale : aucun email récent uniquement sur Google.
- Export final via Google Takeout pour archive (.mbox).
- Annuler abonnement Google Workspace.
- Suppression données Google : 30 jours après cancel.
- Documentation interne wiki : « Migration terminée le DD/MM/YYYY ».
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| imapsync rate limit Google | Trop de requêtes | --noreleasecheck --tmpdir + sleeps |
| Authentification échec Google | App Password obligatoire | Activer 2FA Google + App Password |
| Labels Gmail vs folders Mailcow | Concept différent | imapsync --automap remappe |
| Volumes énormes timeout | Connexion lente | Lancer depuis VPS Hetzner directement |
| Doublons après resync | Message-Id changé | --useheader 'Message-Id' obligatoire |
| Calendrier non migré | imapsync = mail uniquement | Export ICS Google → import SOGo |
Adaptation au contexte ouest-africain
Trois précisions. Bandwidth : pour 100 GB total à migrer, lancer depuis VPS Hetzner direct (gigabit) plutôt que poste local (4G). Heures décalées : migration lourde 22h-5h heure locale pour ne pas saturer le réseau bureau. Communication équipe : webinar live avec Q&A. Vidéo enregistrée pour replay. Économies : 25 personnes Google Workspace = 3 600 USD/an. Migration 1 jour ROI immédiat.
Tutoriels frères
FAQ
imapsync paid version ? Open source GPL. Author propose support paid mais binaire gratuit.
Calendrier et contacts ? imapsync = mail. Calendar export ICS, contacts vCards.
Combien temps pour 100 GB ? 24-48h selon bandwidth. Lancer en parallèle 5-10 boîtes.
Filtres Gmail migrés ? Non. Recréer manuellement dans SOGo ou avec Sieve filtres serveur.
Sent items et drafts ? Migrés. imapsync copie tous les dossiers.
Pour aller plus loin
- 🔝 Retour au pilier : Guide complet Mailcow 2026
- imapsync : imapsync.lamiral.info