imapsync est l'outil privilégié pour déplacer du courrier IMAP sans imposer aux utilisateurs des exportations PST, des logiciels de bureau ou un week-end de tâtonnements. Jusque-là, tout va bien. Le problème vient ensuite. Un mauvais paramètre, une correspondance de dossiers incorrecte ou une erreur sur l'authentification, et la migration s'achève avec des messages envoyés manquants, des dossiers en double ou du courrier récent supprimé lors de la bascule. Pour comprendre d'abord le processus complet, lisez ce guide pratique d'imapsync.
Voilà pourquoi cet article adopte volontairement un périmètre précis. Il traite des paramètres qui influencent réellement le résultat : délais d'attente, connexions persistantes, correspondance des dossiers, limitation du débit, déduplication et options de suppression capables d'endommager une boîte active. Pour un seul compte, vous éviterez une nouvelle exécution désordonnée. Pour cinquante, vous n'aurez pas à expliquer pourquoi le dossier Envoyés s'est divisé en trois copies.
En bref, la configuration par défaut d'imapsync n'est pas un plan de migration, mais un point de départ. Une vraie migration exige des passages successifs, des règles explicites et une vérification avant de toucher au MX. Si TrekMail est la destination, l'assistant d'importation inclus dans les offres payantes gère la réception depuis le tableau de bord, plus rapidement que l'administration manuelle de chaque boîte par des scripts shell. TrekMail commence à $3.50/month, utilise un stockage mutualisé plutôt qu'une facturation par utilisateur et prend en charge l'importation IMAP côté serveur depuis Gmail, Outlook, Yahoo, iCloud et tout serveur IMAP standard.
Pourquoi imapsync échoue quand on fait confiance aux réglages par défaut
imapsync copie le courrier entre des espaces IMAP actifs, pas entre des fichiers statiques. Il doit gérer différentes hiérarchies, particularités des serveurs, identifiants de messages et méthodes d'authentification alors que le réseau peut interrompre la session. C'est pourquoi les exécutions sûres sont toujours plus explicites que les exemples copiés depuis des forums.
Les échecs courants sont ordinaires et coûteux :
- Les messages volumineux dépassent le délai pendant le chargement.
- Les noms de dossiers sont mal associés et les utilisateurs croient leur courrier disparu.
- Les fournisseurs limitent la tâche et commencent à refuser les connexions.
- L'authentification moderne bloque les mots de passe ordinaires.
- Les changements d'état UID créent des doublons lors des passages suivants.
- `--delete2` efface du courrier récent sur la destination après la bascule.
Si une migration s'est déjà déroulée « plutôt bien, sauf pour Sent Items », ce n'était pas un hasard. Le problème était prévisible. Le protocole le permettait et les réglages par défaut ne vous ont pas protégé.
Les paramètres de connexion qui maintiennent imapsync actif
Pour les grandes boîtes, imapsync échoue souvent parce que la connexion expire avant la fin de l'écriture. Les longues opérations APPEND, les serveurs Exchange lents et les pare-feu avec suivi de connexion en sont les causes habituelles. La solution consiste à augmenter la tolérance au délai, envoyer des signaux de maintien et mettre l'état en cache pour éviter de repartir de zéro.
Utilisez ces paramètres lors du premier passage sérieux :
imapsync \
--host1 imap.source.tld --user1 user@source.tld --passfile1 ./pass1 \
--host2 imap.dest.tld --user2 user@dest.tld --passfile2 ./pass2 \
--timeout 120 \
--keepalive1 --keepalive2 \
--usecacheRôle de chaque paramètre :
| Paramètre | Pourquoi il compte | Ce qui échoue sans lui |
|---|---|---|
--timeout 120 | Laisse aux transferts lents et grandes pièces jointes le temps de finir. | Des messages sont ignorés après expiration de la connexion. |
--keepalive1 --keepalive2 | Maintient les deux sessions IMAP pendant les longues périodes d'inactivité. | Les pare-feu ou répartiteurs interrompent la session. |
--usecache | Conserve localement l'état de comparaison pour accélérer les reprises. | Les nouveaux passages ralentissent et revérifient tout. |
Le cache est plus important qu'on ne le pense. Les bonnes migrations sont progressives. Vous lancez un transfert massif, corrigez les problèmes d'authentification ou de correspondance, puis effectuez un ou deux passages de rattrapage. Avec `--usecache`, imapsync relit moins les deux côtés. Sans lui, chaque reprise est plus lourde que nécessaire.
Il existe une réserve. La documentation officielle avertit que `--usecache` n'est pas sûr avec certaines combinaisons de filtres par taille et ancienneté. N'accumulez pas des filtres au hasard sous prétexte qu'ils semblent efficaces. Gardez un premier passage simple.
Les paramètres de dossiers qui évitent la panique des dossiers manquants
Quand les utilisateurs affirment qu'imapsync a perdu des dossiers, le courrier est souvent toujours présent. La destination a plutôt interprété différemment le chemin source, ou un dossier spécial localisé n'a jamais été associé au dossier Envoyés actif. imapsync exige une traduction explicite lorsque les fournisseurs divergent.
Les deux grands pièges sont les séparateurs de hiérarchie et les dossiers spéciaux.
Exemple : certains serveurs utilisent des points pour l'imbrication, d'autres des barres obliques. Si la source contient INBOX.Clients.ProjectA et que la destination attend INBOX/Clients/ProjectA, réécrivez le chemin pendant la copie.
imapsync \
--host1 old.example.com --user1 user@old.example.com --passfile1 ./pass1 \
--host2 imap.trekmail.net --user2 user@example.com --passfile2 ./pass2 \
--regextrans2 's/\./\//g'Reste le problème du dossier Envoyés. Chaque fournisseur le nomme différemment, et les utilisateurs veulent seulement retrouver leur courrier dans la vue active.
| Dossier source | Dossier cible | Paramètre utile |
|---|---|---|
[Gmail]/Sent Mail | Sent Items | --regextrans2 's/^\[Gmail\]\/Sent Mail/Sent Items/' |
Sent | Sent Items | --regextrans2 's/^Sent/Sent Items/' |
Gesendete Elemente | Sent Items | --regextrans2 's/^Gesendete Elemente/Sent Items/' |
Si la boîte possède des dossiers spéciaux standard, essayez d'abord --automap. Pour des boîtes cPanel désordonnées, localisées ou anciennes, les transformations regex explicites sont plus sûres. TrekMail propose aussi des guides pour démarrer une importation dans le tableau de bord et préparer le domaine en ajoutant un domaine, ce qui compte si la destination est préparée avant la bascule.
Exemple conceptuel : le dossier n'a pas disparu. Il a quitté le dossier Envoyés attendu pour prendre un nom d'archive brut que le client ne considère pas comme « Envoyés ». Les mêmes octets, au mauvais endroit, et malgré tout le même ticket d'assistance.
Limitez imapsync avant que Google ou Microsoft ne vous limite
imapsync peut ressembler à un trafic abusif pour les fournisseurs hébergés. Des rafales de commandes APPEND et FETCH sur de nombreuses boîtes déclenchent contrôles de débit, suspensions temporaires ou erreurs ressemblant à des échecs d'authentification alors qu'il s'agit de restrictions de capacité. Une allure lente et régulière est souvent plus rapide qu'un blocage.
Avec Google Workspace ou Microsoft 365, contrôlez le rythme :
imapsync \
--host1 imap.gmail.com --user1 user@source.tld --passfile1 ./pass1 \
--host2 imap.trekmail.net --user2 user@dest.tld --passfile2 ./pass2 \
--maxbytespersecond 500000 \
--maxmessagespersecond 2Deux effets en résultent. Premièrement, les pics qui déclenchent les protections diminuent. Deuxièmement, les environnements partagés ne sont pas submergés par des rafales de petits messages. C'est important sur les anciens serveurs cPanel et les environnements Office 365 déjà chargés.
Ne considérez pas ces chiffres comme sacrés. Ce sont des valeurs initiales. La bonne limite dépend du volume, du parallélisme et de la tolérance du fournisseur aux tâches IMAP longues. La règle est simple : si une migration commence bien puis se dégrade en erreurs intermittentes, ralentissez avant de croire le mot de passe incorrect.
C'est ici que l'ancienne et la nouvelle méthode se distinguent clairement.
Ancienne méthode : écrire un script pour chaque boîte, régler les limites par tâtonnements et surveiller les échecs à 2 heures du matin
Nouvelle méthode : utiliser l'importation côté serveur intégrée aux offres payantes TrekMail pour la réception, normaliser la destination et éviter la tarification par utilisateur. Les agences qui gèrent de nombreux domaines préfèrent ne pas passer trois jours à trier les reprises plutôt que gagner dix minutes sur une boîte. Si c'est votre situation, consultez ce guide de l'hébergement e-mail multidomaine.
Paramètres d'authentification pour 2025-2026 : les mots de passe échouent, OAuth s'impose
Avec Google Workspace et Microsoft 365, on ne peut plus supposer que l'authentification IMAP par identifiant et mot de passe fonctionnera. Google indique qu'à compter du 1er mai 2025, les comptes Workspace ne prennent plus en charge les « applications moins sécurisées » connectées avec ces seules informations. Les recommandations Exchange Online orientent également les clients IMAP vers OAuth.
Cela change l'utilisation d'imapsync. Si la source accepte XOAUTH2, il faut un jeton d'accès à la place du mot de passe ordinaire.
imapsync \
--host1 outlook.office365.com \
--user1 user@source.tld \
--authmech1 XOAUTH2 \
--oauthaccesstoken1 "ACCESS_TOKEN" \
--host2 imap.trekmail.net \
--user2 user@dest.tld --passfile2 ./pass2Sur Google Workspace, les mots de passe d'application restent une solution pratique pour les transferts ponctuels lorsque la validation en 2 étapes est activée. Sur Microsoft 365, utilisez le flux OAuth documenté pour les anciens protocoles. Un script qui suppose encore qu'un mot de passe correct garantit l'authentification est dépassé.
Sources officielles : recommandations Google Workspace sur les applications moins sécurisées et instructions Microsoft pour OAuth avec IMAP.
Les paramètres d'intégrité qui évitent d'ignorer les messages défectueux
Certains messages sont endommagés. C'est courant sur les anciens serveurs. En-têtes Message-ID absents, contenu MIME incorrect, pièces jointes gigantesques et corps vides existent dans les migrations réelles. imapsync peut contourner une partie de ces problèmes si vous lui indiquez comment.
Le premier paramètre utile est --addheader. La documentation officielle précise qu'il ajoute un en-tête Message-Id généré quand il en manque un. L'identité du message permet à imapsync de déterminer ce qui existe déjà.
Le second est --maxsize. Si la boîte ou la politique de destination refuse les messages gigantesques, ne laissez pas un seul élément bloquer toute la tâche.
imapsync \
--host1 old.example.com --user1 user@old.example.com --passfile1 ./pass1 \
--host2 imap.trekmail.net --user2 user@example.com --passfile2 ./pass2 \
--addheader \
--maxsize 35000000Il ne s'agit pas de prétendre que ces messages n'existent pas. Il faut d'abord déplacer les 99%, puis traiter les exceptions manuellement à partir d'une liste maîtrisée.
Si vous déployez plusieurs boîtes en parallèle, associez cette approche à un provisionnement propre. Le guide TrekMail pour créer des comptes e-mail en masse est utile, car les problèmes empirent lorsque création, remise des mots de passe et changements DNS sont suivis dans des feuilles distinctes.
Le paramètre imapsync qui cause les pires pertes : --delete2
`--delete2` demande à imapsync de supprimer sur la destination les messages absents de la source. Cela paraît utile pour obtenir un miroir exact. C'est aussi le moyen le plus simple d'effacer du courrier récent parfaitement valide après la bascule MX si vous l'exécutez au mauvais moment.
Voici la séquence d'échec :
- Vous préparez la destination avec l'ancien courrier.
- Vous basculez le MX vers le nouveau fournisseur.
- Le courrier récent commence à arriver sur la destination.
- Vous relancez imapsync avec
--delete2. - imapsync voit le courrier propre à la cible et le supprime puisqu'il n'a jamais existé sur la source.
Ce n'est pas un bug. C'est exactement l'instruction donnée.
Utilisez `--delete2` uniquement pour un miroir contrôlé avant la bascule, lorsque les deux côtés dépendent encore logiquement de l'ancienne source de vérité. Après le changement MX, retirez-le de la commande. Si la destination est active et reçoit du courrier, considérez-la comme la référence pour les nouveaux messages.
Quand les UID mentent, utilisez la comparaison par en-têtes
Les UID IMAP sont fiables uniquement dans l'état de serveur auquel ils appartiennent. RFC 3501 définit précisément UIDVALIDITY parce que les hypothèses sur les UID peuvent échouer lorsque l'état change. Si un dossier est reconstruit ou réindexé, imapsync peut prendre tous les messages pour des nouveautés et tout dupliquer lors d'un passage ultérieur.
La comparaison par en-têtes devient alors utile :
imapsync \
--host1 old.example.com --user1 user@old.example.com --passfile1 ./pass1 \
--host2 imap.trekmail.net --user2 user@example.com --passfile2 ./pass2 \
--useheader 'Message-Id'Cette méthode est plus lente que la confiance dans les UID du serveur. Elle est aussi plus sûre si la source est instable, reconstruite ou manifestement incohérente. La documentation officielle indique que les doublons se résolvent souvent en passant à --useheader "Message-Id".
Pour la vérification finale, je préfère un passage à blanc avec une comparaison prudente avant le changement DNS, puis une courte passe différentielle quand les utilisateurs ont cessé d'écrire sur l'ancien système.
Modèle de commande imapsync sûr
Une exécution sûre explicite la connexion, la correspondance, les exclusions et le mode de test. Commencez à blanc, confirmez le comportement des dossiers, puis lancez la vraie passe. Ne touchez pas au courrier de production avec une première ébauche de commande.
imapsync \
--host1 imap.gmail.com --user1 user@source.com --passfile1 ./pass1 \
--host2 imap.trekmail.net --user2 user@dest.com --passfile2 ./pass2 \
--timeout 120 --keepalive1 --keepalive2 \
--usecache \
--automap \
--regextrans2 's/^\[Gmail\]\/Sent Mail/Sent Items/' \
--exclude '^\[Gmail\]/All Mail' \
--maxbytespersecond 500000 \
--maxmessagespersecond 2 \
--dryTrois remarques pratiques :
- Utilisez d'abord
--dry. Toujours. - Excluez du premier passage les immenses dossiers d'archive inutiles.
- Conservez le journal et versionnez vos lignes de commande pour chaque lot.
Une fois la boîte sur TrekMail, les utilisateurs se connectent en IMAP standard à imap.trekmail.net sur le port 993. TrekMail utilise uniquement IMAP, pas POP3, un choix adapté pour synchroniser l'état entre les appareils plutôt que jouer à la roulette avec la boîte de réception.
Conclusion : imapsync fonctionne quand on l'exploite comme outil de migration
imapsync reste le bon outil pour de nombreux transferts. Mais il faut le traiter comme un logiciel de migration avec état, pas comme une simple commande de copie. Réglez les délais. Utilisez les connexions persistantes. Mappez les dossiers délibérément. Ralentissez lorsque les fournisseurs imposent des limites. Utilisez l'authentification moderne. Éloignez `--delete2` du courrier reçu après la bascule. Si l'état UID semble douteux, forcez la comparaison par en-têtes.
Pour faciliter la gestion de la réception, TrekMail fournit une destination multidomaine à tarif fixe, un stockage mutualisé, une importation côté serveur dans les offres payantes et aucune taxe par utilisateur à chaque nouvelle boîte. Pour établir la base opérationnelle après le transfert, poursuivez avec cet article sur l'e-mail professionnel.