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 :)

A lire également :

    Aucun résultat

5 commentaires

  • hellman (1 comments), le 10 août 2009

    merci pour ce fabuleux tuto … j’ai ainsi pu paramétrer IMAPSYNC sans problème. je rajouterai juste une chose si le mot de passe de la boite mail comporte des * il faut mettre des “”.

  • dju (1 comments), le 28 octobre 2009

    Salut.
    Pour info, je suis en pleine migration, et je suis en effet confronté à la problématique de “on ne veut pas redéfinir les mots de passe”… j’ai aussi cru comprendre qu’en utilisant l’option authuser1, imapsync se connecte sous le compte “admin” et peux copier les mails d’autres comptes sans connaître leur mot de passe. malheureusement, tout ce que j’arrive à faire, c’est copier les mails du compte admin…

    imapsync –syncinternaldates –host1 myhostSrc –host2 myhostDest
    –user1 userLoginSrc –authuser1 adminLoginHostSrc –password1
    passwordAdminHostSrc –user2 userLoginDest –authuser2
    adminLoginHostDest –password2 passwordAdminHostDest

    je ne perds pas expoir…
    merci pour le tuto.

  • ngameni (2 comments), le 19 novembre 2012

    bonjour cet article est tres interressant mais voila l’erreur quiq est generer quand j’essaye d’installer imapsync:couldn’t find package imapsync.que faire pour le corriger s’il vous plait

  • Johan (38 comments), le 1 décembre 2012

    Bonjour @ngameni
    Un truc simple à faire avant de tenter d’installer qui peut fonctionner :
    #sudo apt-get update

    Autrement quelle distribution linux utilise tu ?

  • ngameni (2 comments), le 3 décembre 2012

    bonjour j’utilise ubuntu.mais j’ai pu installer tous les paquets pre-requis.mais seulement je bloque encore au niveau de la migration.imapsync c’est bien installer mais je ne connais pas les commandes necessaire pour effectuer la migration des utilisateurs et de leur compte donc je cherche encore tous ce que je trouve est incomprehensif. merci de m’aider

    cordialement

Poster un commentaire

Subscribe without commenting