Aymeric / APLU(.FR) - Mot-clé - imapSite d'Aymeric (ou d'aplufr) pour parler de Linux, de technique.. enfin de tout et surtout de n'importe quoi !2023-09-19T19:41:16+02:00Aymericurn:md5:9a770342f58fde945e9ce016459f8f12DotclearComment migrer ses mails depuis Gmailurn:md5:5c9a74f3fd85e202ea3041f6e02f6a472015-04-20T10:49:00+02:002015-04-20T10:49:00+02:00APLUInternetgmailGoogleimapmailmigration <p>Dans mon billet du <a class="ref-post" href="https://www.aplu.fr/v2/post/2015/01/01/11111011111">nouvel an</a>, j'expliquais que je n'utilisais plus Gmail et que j'avais migré mes comptes sur mon serveur.<br />
À l'époque, j'avais utilisé des solutions un peu merdiques pour récupérer mes mails. Solution que je n'ai jamais pris la peine d'expliquer. J'ai eu l'occasion de migrer récemment (cette semaine), une boite Gmail vers mon serveur, voici donc deux solutions possibles qui sont relativement simples.</p>
<h2>Solution 1, Google Takeout</h2>
<h3>En bref</h3>
<p>Avantages :</p>
<ul>
<li>Rapidité ;</li>
<li>Permet de mettre les mails récupérés dans un dossier spécifique.</li>
</ul>
<p>Inconvénients :</p>
<ul>
<li>Tri des mails à faire à la fin ;</li>
<li>Nécessite d'avoir accès au serveur.</li>
</ul>
<h3>Google Takeout</h3>
<p>Voici une fonctionnalité qui n'existait pas (ou ne fonctionnait pas) à l'époque. Il s'agit donc de la première étape, demander à Google une archive complète de la boite mail.</p>
<p>Pour ce faire, on va sur ce <a href="https://google.com/takeout" hreflang="fr">site</a> et on sélectionne Gmail et un format d'archive tbz2 (meilleure compression). Il suffit d'attendre quelques heures et Google prévient que le fichier est disponible au téléchargement.</p>
<p>La mauvaise surprise : Gmail envoie bien la totalité de la messagerie, mais dans un seul fichier (y compris les messages envoyés)… Adieu, donc, les classements que vous aviez faits.</p>
<h3>Conversion en Maildir</h3>
<p>Une fois l'archive récupérée et copiée sur le serveur, j'ai utilisé l'utilitaire <em>mb2md</em> pour convertir les mails stockés dans le format Mailbox vers le format Maildir qui est celui de mon serveur web.</p>
<pre>
cd /srv/mail/aplu.fr/nouveaucompte/
mkdir .Gmail
cd .Gmail
mb2md -s /mnt/tmpvol/Takeout/Gmail/Tous\ les\ messages\,\ y\ compris\ ceux\ du\ dossier\ Spam\ .mbox -d $PWD/</pre>
<p>Après une petite demi-heure de travail, les 10 Go de mails sont visibles dans le dossier Gmail, il ne reste plus qu'à les (re)trier, opération facilement réalisable avec Thunderbird en configurant des règles en local.</p>
<h2>Solution 2, ImapCopy</h2>
<h3>En bref</h3>
<p>Avantage :</p>
<ul>
<li>Conserve les mails dans les dossiers respectifs.</li>
</ul>
<p>Inconvénients :</p>
<ul>
<li>Long ;</li>
<li>A priori, pas de possibilité de reprise.</li>
</ul>
<h3>Côté Gmail</h3>
<p>La seule chose à faire est d'activer IMAP sur le profil Gmail. Je vous laisse chercher dans la documentation Google pour activer ce paramètre.</p>
<h3>ImapCopy</h3>
<p>ImapCopy est un logiciel disponible sous Debian avec le paquet : imapcopy (surprise !). À noter qu'il faut aussi installer l'utilitaire <em>stunnel</em> pour pouvoir effectuer les copies car imapcopy ne supporte pas le chiffrement. Pour les autres systèmes, je ne sais pas mais l'utilitaire existe sûrement.</p>
<p>Le principe est le suivant, avec l'utilitaire <em>stunnel</em>, on ouvre un tunnel vers Gmail et vers le nouveau serveur imap pour avoir deux ports en local connectés sur les serveurs imap respectifs. Ensuite, on lance imapcopy qui fera le reste du travail.</p>
<p>Le fichier de configuration suivant :</p>
<pre>
#serveur source correspond au port qui sera ouvert par stunnel
SourceServer localhost
SourcePort 1143
#idem pour le serveur cible
DestServer localhost
DestPort 2143
converttimezone "UTC" "+0000"
converttimezone "UT" "+0000"
# les logins et mdp des deux comptes
Copy "moi@gmail.com" "jaimelansa" "moi@monserveur.fr" "correct horse battery staple"</pre>
<p>Puis, on lance les commandes suivantes :</p>
<pre>
stunnel -c -f -d 1143 -r imap.gmail.com:993 -P '' #serveur source, ici le serveur imap gmail
stunnel -c -f -d 2143 -r imap.monserveur.fr:993 -P '' #serveur cible, ici le serveur imap de monserveur.fr
imapcopy
</pre>
<p>Une fois la copie effectuée, les mails sont logiquement sur le nouveau serveur.</p>
<h2>Astuce pour rediriger TOUS les mails</h2>
<p>Une fois la migration effectuée, il peut être pas mal de rediriger les mails qui arrivent encore sur Gmail vers la nouvelle adresse.</p>
<p>Google propose cette option dans les règlages du compte, cependant, ça ne redirige pas les mails jugés comme spam. En soi, ce n'est pas problématique, mais si l'on ne souhaite pas aller vérifier tous les 4 matins si le filtre anti-spam a bien fonctionné, il est plus prudent de rediriger aussi les spams.</p>
<p>Pour ce faire, on crée sur Gmail une règle avec comme motif "<em>is:spam</em>" et comme action "<em>Ne pas marquer comme spam.</em>"<br />
Ainsi, tous les messages, y compris ceux que Google considère comme du SPAM, seront transférés sur la nouvelle adresse moi@monserveur.fr.</p>