E-mail

Utiliser imapsync en SSH pour copier des e-mails entre fournisseurs

Vérifié le 7 min de lecture migracion de correo imapsync

imapsync copie des messages entre deux boîtes mail IMAP, avec l'arborescence des dossiers et les indicateurs compatibles. C'est une copie à sens unique, pas un miroir exact : il ne migre ni les contacts, ni les calendriers, ni les règles, ni les métadonnées que l'un des serveurs n'expose pas par IMAP.

Un usage fréquent est le changement de fournisseur de messagerie, par exemple lors d'une migration vers nos services d'hébergement. La synchronisation doit être répétée et vérifiée pour réduire le risque d'oublier des messages pendant le changement.

Avant de commencer, créez la boîte mail de destination, inventoriez les dossiers et vérifiez leurs quotas. Lancez une première synchronisation sans option de suppression, vérifiez la correspondance des dossiers, les décomptes et les erreurs, et corrigez toute différence avant de basculer le flux de messagerie.

Si vous préférez que nous préparions la migration, renseignez-vous auprès de l'assistance sur ce qui est inclus dans votre service. Pour la faire vous-même, vérifiez que vous disposez d'un accès SSH et d'imapsync ; l'alternative graphique est expliquée dans Migrer les e-mails depuis le panneau.

Pour reprendre l'exemple initial, si vous voulez synchroniser un compte de messagerie d'origine avec un compte de destination, il vous faut d'abord les identifiants de ces comptes ; si le compte de destination est nouveau, créez-le d'abord depuis cPanel.

Utilisez des mots de passe d'application ou des identifiants temporaires lorsque le fournisseur le permet. Google Workspace peut exiger OAuth2 ou un mot de passe d'application autorisé, et Microsoft 365 exige OAuth dans les configurations modernes ; consultez la procédure propre à l'origine. N'écrivez pas les mots de passe dans les arguments d'imapsync : ils resteraient visibles dans l'historique du shell et pourraient apparaître dans la liste des processus. Pour les fournisseurs qui acceptent encore ce type d'authentification, enregistrez chaque mot de passe dans un fichier séparé hors de la racine web et protégez-le avant de lancer la synchronisation :

umask 077
read -rsp 'Contraseña temporal de origen: ' IMAPSYNC_PASS1; printf '\n'
read -rsp 'Contraseña temporal de destino: ' IMAPSYNC_PASS2; printf '\n'
printf '%s\n' "$IMAPSYNC_PASS1" > "$HOME/.imapsync-pass1"
printf '%s\n' "$IMAPSYNC_PASS2" > "$HOME/.imapsync-pass2"
unset IMAPSYNC_PASS1 IMAPSYNC_PASS2
chmod 600 "$HOME/.imapsync-pass1" "$HOME/.imapsync-pass2"

imapsync \
--host1 SERVIDOR_IMAP_ORIGEN --user1 CUENTA_ORIGEN --passfile1 "$HOME/.imapsync-pass1" --ssl1 --sslargs1 SSL_verify_mode=1 \
--host2 SERVIDOR_IMAP_DESTINO --user2 CUENTA_DESTINO --passfile2 "$HOME/.imapsync-pass2" --ssl2 --sslargs2 SSL_verify_mode=1

Avant la copie réelle, lancez la même commande en ajoutant --dry. Vérifiez dans la sortie la correspondance des noms de dossiers et corrigez les règles d'inclusion, d'exclusion ou de renommage nécessaires. Retirez ensuite --dry pour lancer la synchronisation effective.

La durée dépend du volume, de la connexion et des limites des fournisseurs. Vérifiez le résumé final et les erreurs ; la fermeture du terminal ou l'absence de progression affichée ne prouvent pas que la copie est terminée.

--ssl1 et --ssl2 chiffrent les deux connexions. Ajoutez aussi SSL_verify_mode=1 dans --sslargs1 et --sslargs2 pour exiger la validation du certificat, et ne poursuivez pas en cas d'échec. Une fois la migration terminée et vérifiée, supprimez les fichiers avec la commande suivante :

rm "$HOME/.imapsync-pass1" "$HOME/.imapsync-pass2"

Révoquez ou changez ensuite les identifiants utilisés.

La documentation d'imapsync traite de cas comme Gmail, Exchange et Microsoft 365 et propose de nombreuses options. Certaines sont destructrices : --delete1 supprime des messages à l'origine et --delete2 peut supprimer à destination les messages absents de l'origine. Ne les utilisez pas dans une migration de base ; testez d'abord la copie sans option de suppression et vérifiez les deux boîtes mail.

Lors d'une migration, lancez une deuxième synchronisation juste avant le changement de MX et une autre une fois la propagation terminée. Gardez l'origine accessible pendant cette période, comparez dossiers et décomptes des deux côtés et ouvrez un échantillon de messages et de pièces jointes. Ne supprimez pas les anciennes boîtes mail avant d'avoir confirmé qu'elles ne reçoivent plus d'e-mails et que la récupération depuis la destination fonctionne.

Interpréter le résultat

Vérifiez le code de sortie, les erreurs et les messages identifiés comme manquants à destination. Une différence de taille totale ne prouve pas à elle seule une perte : les serveurs peuvent compter différemment et Gmail présente un même message sous plusieurs libellés.

Commencez par une seule boîte mail et conservez ses paramètres et son journal dans un emplacement privé. Si la connexion s'interrompt, vérifiez la cause et recommencez avec les mêmes critères de dossiers ; n'ajoutez pas d'options de suppression pour tenter d'égaliser les chiffres.

Le bloc de préparation des mots de passe utilise Bash (read -rsp) : exécutez-le dans ce shell, pas dans une console qui interpréterait ces options autrement. N'activez pas de traces comme set -x ni l'option --showpasswords lorsque vous manipulez des identifiants.

Cela peut aussi vous aider

Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.