Imapsync est un petit programme tout léger qui permet de synchroniser plusieurs boites mail en utilisant le protocole IMAP. Ce programme permet de conserver l’état des mails (lu, non-lu, brouillon…) Il permet également de conserver les dossiers dans l’état où ils étaient, les dates… En gros tout est conservé. Ce programme est très utile notamment lors de la migration d’un serveur de mail ou dans le cas d’une sauvegarde de boite mail sur une boite de secours. J’ai pas mal utilisé ce petit programme ces derniers jours alors, j’ai décidé de vous faire part de mon expérience et des petits problèmes que je n’ai pas réussi à résoudre.

Tout d’abord, il faut préciser que ce programme marche sous linux. Il semble exister une version Windows, mais je ne l’ai pas (trouvé / trop cherché),  à vous de choisir 🙂 .Pour les utilisateurs de Windows qui on cherché et pas trouvé, il vous reste la solution d’utiliser un live-cd ou de passer à linux… Pour la suite, je considérerais que vous êtes sous linux.

Pour commencer, il va falloir installer imapsync, sous linux c’est assez facile et banal :

sudo apt-get install imapsync

Maintenant que c’est installer, voilà la commande de base :

/usr/bin/imapsync \
--host1 imap.nom_de_domaine_origine.com --user1 login_email_origine@nom_de_domaine_origine.com --passfile1 /home/username/password1 \
--host2 imap.nom_de_domaine_destination.com --user2 login_email_destination@nom_de_domaine_destination.com --passfile2 /home/username/password2

Ici tout est facile à comprendre, il faut juste enregistrer les mots de passes dans 2 fichiers différents, ici password1 et password2. On peut autrement remplacer

-–passfile1 /home/username/password1

par

--password1 XXXXXXX

Mais il est déconseiller d’utiliser cette solution car le mot de passe serait alors visible en claire dans l’historique.
La commande si dessus est la commande de base pour synchroniser depuis l’adresse login_email_origine@nom_de_domaine_origine.com vers l’adresse login_email_destination@nom_de_domaine_origine.com. Mais bien souvent cela ne suffit pas (dans mon cas ça n’a jamais suffit). En effet touts les serveurs IMAP ne supportent pas les mêmes type d’authentifications et imapsync vous envoie généralement une ligne du genre :

Host imap.nom_de_domaine_origine.com says it has NO CAPABILITY for AUTHENTICATE LOGIN

Heureusement pour vous, la ligne précédente ressemble à cela :

Banner : * OK [CAPABILITY ......]

Et à la place des petits points, vous avez une liste des authentifications qui sont acceptée. Il vous reste donc à ajouter à la fin des paramètres du serveur récalcitrant le paramètre :

--authmech1 TYPE_D_IDENTIFICATION

Si cela ne suffit pas, ce qui est souvent le cas, il faudra également ajouter le paramètre :

--noauthmd5

Ce paramètre n’affecte qu’un serveur à la fois, il faut donc l’ajouter à la fin des paramètres des deux serveurs si les deux serveurs en ont besoin.

Pour vous aider à trouver les bon paramètres, vous pouvez regarder comment fetchmail se débrouille avec la commande

fetchmail -v -v -u login_email@nom_de_domaine.com imap.nom_de domaine.com

Au bout de quelques secondes, vous pouvez normalement stopper la récupération avec Ctrl+C. Il faut en suite lire tout ce qui c’est passé et voir par exemple quel type d’authentification a été utilisé, ou si le mot de passe est correct.

Avec tout ça vous devrez normalement être capable de faire vos migrations de boite mail sans trop de difficultés. Si vous avez un peu peur de faire des erreurs terrible, vous pouvez utiliser le paramètre –dry qui simulera tout le travail et il ne vous restera plus qu’à vérifier que le travail effectué est bien celui que vous attendez. Enfin, pour les utilisateurs plus exigeants, sachez qu’il existe encore plein d’autres options comme synchroniser seulement certains dossiers de manière récursive ou non, synchroniser seulement les mails qui collent avec une expression régulière, garder ou supprimer les mail du serveur d’origine une fois qu’il ont été transférés sur le serveur de destination, etc…  Mais pour ça je vous laisse utiliser la commande fatidique 🙂

man imapsync

Pas de panique le manuel ne fait pas 4000 pages. Il est très cours (trop a mon goût 🙂 ).

En conclusion, j’ai trouvé bien utile ce petit programme, il marche très bien. Il me reste juste une petite question… Est t’il possible de faire migrer toutes les boites mail d’un serveur quand on en est l’administrateur mais qu’on n’a pas les mots de passe de tout les comptes pop et qu’on ne veut pas en redéfinir de nouveaux? J’ai cru comprendre qu’il y avait des solutions en utilisant le compte postmaster, mais je n’ai rien trouvé. Si quelqu’un a des pistes ce serait bien venu 🙂