Migrer depuis Microsoft Exchange

Aller à : navigation, rechercher

La plupart du temps, vous aurez seulement besoin de créer 2 comptes IMAP dans votre application de couriel et copier tout le contenu de votre compte Microsoft Exchange vers votre compte GNU/Linux. Pourtant, si vous avez un nombre important de messages ou de dossiers cela risque d'être une rude épreuve pour la plupart des applications de couriel. ATTENTION: NE PAS UTILISER DEPLACER, UTILISEZ COPIER !

Vous voulez copier tous vos couriels - qu'ils aient été lus ou non - depuis un compte Microsoft Exchange vers le répertoire Maildir-directory dans un compte GNU/Linux. La seule chose dont vous avez besoin c'est de lancer une fenêtre Terminal depuis un ordinateur GNU/Linux. Veuillez lire l'example suivant en entier avant de vous lancer à votre propre risque ! Vous n'allez effacer aucun couriels mais vous devriez procéder sans hâte.

Tout d'abord, assurez-vous qu'aucun nouveau couriel arrive dans votre ancien compte Microsoft Exchange en redirigeant vers le nouveau compte GNU/Linux dans Microsoft Active Directory. Pensez aussi aux listes de distribution.

Microsoft Exchange récupère les couriels grace au protocole Internet Message Access Protocol (IMAP). Dans votre compte sur le serveur Microsoft Exchange vous trouverez un répertoire spécial INBOX (Boîte de réception). Normalement les sous-dossiers de votre boite de réception utilise le caractère de division - / - comme délimiteur lorsque vous êtes en mode texte, nous allons nous en assurer.

telnet votreserveurexchange.fr imap
A LOGIN utilisateur motdepasse
A LIST "" *
A LOGOUT

Une liste de tous les dossiers sur le serveur Microsoft Exchange apparaît, quelque chose comme:

* LIST (\HasChildren) "/" INBOX
* LIST (\HasChildren) "/" INBOX/mailing-lists
* LIST (\Marked \HasNoChildren) "/" INBOX/mailing-lists/openSuSE

Dans la première ligne de l’example \HasChildren signifie que votre boîte de reception (INBOX) contient au moins un sous-répertoire (i.e. mailing-lists ou liste de diffusion en français). De même, le dossier mailing-lists contient le sous-dossier openSuSE. Dans la troisième ligne de l’exemple, l’indication \HasNoChildren signifie que le repertoire openSuSE ne contient pas de sous-dossiers. Quand au caractère entre les guillemets "", ici /, c’est le délimiteur.

Prenez note de ces indications et enregistrez-les (après avoir effectué un copier/coller) dans un fichier texte appelés dossiers.

IMPORTANT : VERIFIEZ LE CONTENU DES FICHIERS ! Ici tout peut arriver lors de la copie des fichiers. Vous pouvez taper :

cat dossiers

pour voir le contenu des fichiers. Il est nécessaire de ne garder que les noms de dossiers. Les noms de dossiers qui contiennent un espace apparaîtront sans guillemets, au contraire de ceux sans espace. Cela donne :

"Junk E-mail"
INBOX/mailing-lists

Si vous vous trouvez dans le cas d’une migration d’un nombre important de dossiers et d’utilisateurs, vous trouverez sans doute pratique d’utiliser les expressions régulières afin d’enlever tout sauf le nom des repertoires. Si vous effectuez seulement la migration de vos dossiers, un éditeur de texte sera probablement suffisant. Dans tous les cas vous devez aboutir a un fichier qui ne contient que des noms de répertoires, avec un nom de répertoire par ligne, et vous devez gardez les guillemets autour des noms de dossiers avec espace. Une fois que vous avez obtenu ce fichier enregistrez-le avec le nom dossiers_nettoye. Maintenant vous avez besoin de fetchmail et maildrop installés. Vous pouvez également utiliser Procmail à la place de maildrop mais ce n’est pas l’object de cet article.

Créez un fichier que vous appèlerez .fetchmailrc dans votre dossier personel (home), il devra contenir le texte suivant:

# Taper man fetchmail pour plus d options
poll    votreserveurexchange.fr
               proto imap
               user votre_nom_d_utilisateur_Microsoft_Exchange_serveur_ici
               pass votre_mot_de_passe_ici
               mda     /usr/bin/maildrop

Utilisez maildirmake de façon à créer un sous-répertoire pour les mails en provenance de votre compte sur le serveur Microsoft Exchange, comme ceci :

maildirmake -f Exchange Maildir

Créez un fichier que vous appèlerez .mailfilter dans votre dossier personel (home), il contiendra la ligne suivante :

MAIL=$HOME/Maildir/.Exchange/

Maildrop va dorénavant envoyer tous les couriels dans ce répertoire, aussi c’est sans doute une bonne idée de demander à votre administrateur de tout d’abord garder les nouveaux couriels et d’effectuer le transfert un jour où vous n’allez pas recevoir beaucoup de couriels.

Pour l’instant, essayez le transfert pour vérifier que tout se passe sans problèmes:

for x in `cat folders_cleaned`; do; fetchmail -c -v -r $x; done

Si tout va bien vous pouvez commencer la copie en entrant:

for x in `cat folders_cleaned`; do; fetchmail -a -k -r $x; done

ATTENTION: N’OUBLIEZ PAS l’OPTION –k ! C’est cette option qui permet de laisser les couriels sur le serveur Microsoft Exchange.

Qunad la copie est finie, changez .mailfilter de façon à retourner à la ligne originale :

MAIL=$HOME/Maildir/