Accueil du site > Scripts > Comment j’ai rempli GMail

Comment j’ai rempli GMail

vendredi 13 mars 2009, par Fil

En tant que dino de l’internet, j’ai échoué : je ne conserve tous mes mails que depuis... 2001. J’ai égaré la période 1990-2000. Sniff ! Reste qu’avec 6 Go d’archives dans des boîtes, je ne pouvais rien faire — pas même retrouver les infos essentielles dont, parfois, je peux avoir besoin (boudiou mais où est le super lolcat que m’a envoyé ma marraine il y a trois ans ?). J’ai donc décidé de basculer tout ça sur mon compte GMail, en espérant que les ingénieurs de Google seront meilleurs archivistes que moi.

GMail permettant de charger les mails présents sur un ou plusieurs comptes POP3, j’ai donc créé sur ma machine 5 comptes à mon nom pour y mettre mes archives (il en charge environ 200 par compte et par heure).

Mes archives sont au format mbox, stockées dans mon répertoire ~backup/. Mon serveur POP « local », lui, tournant sous AlternC, demande que les boîtes POP soient au format Maildir, dans les répertoires /var/alternc/mail/f/fil0_{domaine} à /var/alternc/mail/f/fil4_{domaine}. Evidemment, il est impossible de balancer les 6 Go d’archives d’un coup dans les répertoires Maildir, car le serveur POP n’accepte pas des boîtes au-delà d’une certaine taille.

Le script move_mbox fonctionne ainsi : il surveille la taille des 5 répertoires Maildir, et dès qu’il en trouve un dont la taille est descendue au-dessous de 5 Mo, il recopie la plus ancienne boîte d’archives disponible. Lorsque tous les répertoires sont au-dessus de 5 Mo, on s’endort pour 10 minutes, et on recommence. Durant ces 10 minutes le client POP de GMail sera peut-être passé et aura plus ou moins vidé (ou en tous cas fait diminuer) un des 5 Maildir.

Pour convertir mes fichiers mbox en Maildir, j’utilise mb2md, disponible dans Debian avec un simple :

# apt-get install mb2md

Et voici le script move_mbox que j’ai fait pour la migration :

#!/usr/bin/php -q
<?php

$SRC='~/backupmail';

while ($files = glob("$SRC/2*/*/*.gz")) {

       $my = false;
       $du = explode("\n",`du -s /var/alternc/mail/f/*`);
       $du = array_slice($du, 0,5);
       foreach($du as $l) {
               list($n,$dir) = preg_split(',\s+,', $l);
               if ($n < 5 * 1024) {
                       $my = $dir;
                       break;
               }
       }

       echo date("D H:i\n");
       $box = array_shift($files);
       if ($my) {
               echo "Saving $box to $my\n";
               $tmp = "$SRC/tmp/".basename($box);
               $saved = "$SRC/saved/".basename($box);
               copy($box, $tmp)
               && rename ($box, '/tmp/mbox.gz')
               && `gunzip /tmp/mbox.gz && mb2md -s /tmp/mbox -d $my/Maildir/ && rm -f /tmp/mbox && mv $tmp $saved`;
       } else {
               echo "pas de place pour $box\n";
               sleep(600);
       }

}

echo "fini.\n";
?>

Il suffit ensuite de lancer ce script en ligne de commande :

fil@alternc> php move_mbox

et attendre une quinzaine de jours, que GMail ait aspiré les archives.

Note 1 : de temps à autre, il convient d’aller (avec mutt par exemple) surveiller les Maildir pour en retirer les virus, que GMail refuse de télécharger, et qui peuvent bloquer le processus en empêchant le répertoire de descendre au-dessous de 5 Mo.

Note 2 : GMail faisant une unicité basée sur le champ Message-Id des emails, ça ne gêne pas si une partie des messages des archives figurent déjà dans le compte GMail. Ils ne doublonneront pas.

* * *

Evidemment une fois ça fait, j’arrive aux limites de l’espace disponible gratuitement sur GMail. J’ai donc dû débourser 15 € (coût annuel) pour acheter 10 Go d’espace supplémentaire. Quelques captures d’écran, pour les curieux :

PNG - 40.7 ko
GMail m’annonce que je déborde
PNG - 80.7 ko
Gestion du volume payant
PNG - 9.5 ko
Pied de page indiquant le volume occupé

6 Messages de forum

  • Comment j’ai rempli GMail Le 11 mai 2009 à 14:48 , par Parienti M.

    N’existe-t-il vraiment aucune solution de recherche performante dans les mails ? Google est-il obligatoire ?

    • Google obligatoire Le 11 mai 2009 à 14:57 , par Fil

      Certainement pas « obligatoire » ! Mais pour ma part je n’ai pas trouvé de solution plus efficace.

  • Comment j’ai rempli GMail Le 20 mai 2009 à 22:19 , par squirrel

    Bonsoir,

    D’ailleurs, si quelqu’un à une solution plus efficace qu’il le dise !

    squirrel

  • Comment j’ai rempli GMail Le 7 mai 2010 à 11:28

    Pourquoi pas tout simplement Thunderbird associé à Google desktop
    pour pouvoir conserver ses mails en local tout en bénéficiant de la puissance de recherche de Google

  • Comment j’ai rempli GMail Le 7 mai 2010 à 12:32 , par Beurt

    Moi aussi j’ai un compte gmail pour les mêmes raisons... Mais j’aimerai bien trouver une solution performante que je puisses héberger¹ afin d’éviter la dépendance vis à vis de ce géant d’internet (qui me cerne de partout !)

    ¹ Sachant qu’en plus je suis pas bien doué, donc je cherche aussi quelque chose de pas trop compliqué à mettre en œuvre...

  • Comment j’ai rempli GMail Le 24 août 2011 à 05:32 , par tusan62

    I have read your article, it is very informative and helpful for me. I admire the valuable information you offer in your articles. Thanks for posting it.....
    football manager online