Comme beaucoup de monde, j'utilise Gmail (Google Apps pour être précis). Les outils présents dans Gmail, comme le moteur de recherche, sont très puissants et l'espace de stockage est tellement énorme que pour en voir le bout, il faudrait vraiment y aller niveau pièces jointes. De plus, gérer son propre serveur mail, c'est du boulot et je n'ai pas forcement le temps de gérer les crashs, les quotas, les mises à jour de sécurité, les déconnexions du FAI...etc.

Et pourtant, le gros point noir de Gmail (et d'autres), c'est que nos emails sont à la merci de la société américaine Google. Si demain, le géant du net décide de supprimer votre compte pour une raison ou une autre, c'est foutu. Bye Bye les emails. Du coup, dans cet article, je vais vous exposer plusieurs méthodes pour sauvegarder vos emails Gmail, chez vous, bien au chaud.

Sauvegarder vos emails Gmail avec Gmail Backup (La méthode gros n00b)

Gmail Backup est un petit outil gratuit qui vous permettra de récupérer tous les emails de votre compte au format .eml, donc facilement importables ensuite dans un client mail comme Outlook ou Thunderbird. Comme vous pouvez le voir sur la capture-écran, rien de bien compliqué. Gmail Backup peut aussi être utilisé en ligne de commande et donc être intégré dans des crons ou des scripts. Il est possible de faire une sauvegarde des emails, une restauration dans Gmail et même un nettoyage complet d'un compte Gmail (avant de le clôturer par exemple). Allez jeter un oeil à la documentation pour en savoir plus.

Gmail Backup fonctionne sous Windows et sous Linux (avec wxPython).

Sauvegarder vos emails Gmail avec Thunderbird (La méthode petit bidouilleur)

Méthode plus classique, qui nécessite de lancer régulièrement un client mail (Thunderbird ou autre) afin de les récupérer en POP3. Pour cela, 2 choses à faire au niveau de Gmail. Aller dans les paramètres, cliquer sur l'onglet "Forwarding and POP/IMAP" (mon Gmail est configuré en anglais) et activer la récupération par POP3, soit depuis le début, soit à partir du dernier email reçu. Pensez aussi à sélectionner (2) l'option qui consiste à laisser les emails sur le serveur. Si vous vous trompez, vos mails seront supprimés de Gmail, une fois récupérés dans Thunderbird. Faites donc bien attention.

Ensuite, dans votre Thunderbird, ajoutez un nouveau compte pop3 avec en serveur pop.gmail.com, port 995 et SSL/TLS activé. Pensez ensuite à le lancer régulièrement pour avoir une copie de vos emails sur votre disque dur. Attention si vous vous connectez en 3G avec votre ordinateur (via tethering) car chez certains opérateurs peu scrupuleux, le pop3 est à 10 € le Mo.

Sauvegarder votre Gmail avec Getmail (La méthode pour les petits barbus)

Maintenant, on va passer aux choses vraiment drôles. Si vous avez un serveur Linux, le top c'est d'automatiser la sauvegarder dans un petit cron en utilisant Getmail. Getmail est un script Python qui permet d'aller télécharger des emails sur Gmail et de les stocker sur votre serveur dans une mbox parfaitement importable dans n'importe quel Thunderbird.

Dans mon exemple, j'ai installé Getmail sur mon serveur Synology mais vous pouvez très bien le faire fonctionner avec n'importe quel serveur Linux équipé d'OpenSSL ou même Windows en utilisant la bibliothèque Cygwin. Pensez à activer du côté de gmail, le pop3 comme je vous l'ai montré dans le chapitre 2. Petite précision pour ceux qui ont un NAS Synology, s'il vous manque un soft (comme sudo ou nano), pensez à l'installer avec IPKG.

Pour installer Getmail, loggez vous sur le serveur avec n'importe quel compte (sauf root). Allez dans votre répertoire personnel et récupérez l'archive avec un wget (La dernière version est ici):

wget http://pyropus.ca/software/getmail/old-versions/getmail-4.24.0.tar.gz

Dézippez la chose :

tar -zxvf getmail-4.24.0.tar.gz

Installez le script (il vous faudra Python) :

sudo python setup.py install

Pour info, sur un serveur Synology, les binaires vont se placer dans /opt/local/bin/

Créez ensuite un répertoire gmail-archive dans votre répertoire personnel (Avec Synology, mon répertoire personnel admin se trouve dans /volume1/homes/, mais sur un serveur classique, ça sera dans /home/ et avec Cygwin, ce sera dans un truc du genre c:\cygwin\home\)

mkdir /volume1/homes/admin/gmail-archive/

C'est dans ce répertoire que seront stockés vos emails, plus exactement dans un gros fichier mbox. En cas de problème côté Google, c'est là que vous pourrez récupérer tous vos emails (les pièces jointes sont aussi à l'intérieur)

On va ensuite créer un fichier de config pour getmail

nano /volume1/homes/admin/.getmail/getmail.gmail

Editez ensuite ce fichier avec nano ou vi (ou un autre) et mettez y les infos suivantes en prenant soin de remplacer VOTREEMAIL et VOTREMOTDEPASSE par vos identifiants :

[retriever] type = SimplePOP3SSLRetriever
server = pop.gmail.com
username = VOTREEMAIL@gmail.com
password = VOTREMOTDEPASSE
[destination] type = Mboxrd
path = /volume1/homes/admin/gmail-archive/gmail-backup.mbox
[options] verbose = 2
message_log = /volume1/homes/admin/.getmail/gmail.log

Dans ce fichier de config, précisez aussi l'emplacement du répertoire gmail-archive ainsi que le nom de la boite de backup (mbox) et l'emplacement du fichier de logs gmail.log.

Je pense que là, vous êtes prêt. Il n'y a plus qu'à lancer la commande qui va tout récupérer et remplir la mbox :

/opt/local/bin/getmail -r /volume1/homes/admin/.getmail/getmail.gmail -g /volume1/homes/admin/gmail-archive/

C'est aussi simple que ça. À vous ensuite de placer cette ligne de commande dans un crontab pour lancer une récupération toutes les 5 minutes par exemple. En ce qui me concerne et pour la jouer le plus transparent possible, avec le Synology, je n'ai pas réussi à faire fonctionner le cron (et croyez moi, j'ai cherché). Je dois avoir une merde quelque part, mais pas le temps de poursuivre les tests. N'empêche que sur un serveur Linux classique, ça marche d'enfer !

5 0 * * * admin /opt/local/bin/getmail -r /volume1/homes/admin/.getmail/getmail.gmail -g /volume1/homes/admin/gmail-archive/

Sauvegarder vos emails Gmail avec Fetchmail (La méthode pour les gros barbus)

La dernière méthode utilise des outils standard qu'on retrouve dans n'importe quelle distribution, à savoir fetchmail et procmail. La procédure d'install et d'utilisation est assez proche de celle de getmail. Installez donc les paquets fetchmail, procmail, openssl et exim sur votre distrib. (avec apt-get ou ipkg pour Synology).

Pensez aussi à activer du côté de gmail, le pop3 comme je vous l'ai montré dans le chapitre 2. Ces explications fonctionnent sur n'importe quelle machine Linux. J'ai fait mes tests sur le Synology et pour une raison que je n'explique pas, je n'ai pu faire tourner fetchmail qu'en root.

On va d'abord vérifier que vous pouvez bien vous connecter en SSL au serveur Gmail. Pour cela, il suffit de taper la commande suivante sur le serveur :

openssl s_client -connect pop.gmail.com:995

Si sur la dernière ligne, vous voyez un truc du genre, c'est que c'est OK :

+OK Gpop ready for requests from...

En toute logique, cela devrait passer car OpenSSL est "livré" avec les certificats racines (ca-certificates).

Créez ensuite un fichier .fetchmailrc dans votre répertoire personnel + les droits. Chez moi, ça donne :

nano /volume1/homes/admin/.fetchmailrc

chmod 710 .fetchmailrc

Et copiez collez le code suivant à l'intérieur en prenant soin de remplacer VOTREEMAIL, VOTREMOTDEPASSE, VOTRELOGIN

# Interval de vérification (1 minute)
set daemon 60
poll pop.gmail.com with proto POP3 and options no dns
user 'VOTREEMAIL@gmail.com' there with password 'VOTREMOTDEPASSE' is 'VOTRELOGIN' here and wants mda "/opt/bin/procmail -d %T" options ssl

Vous remarquerez qu'on utilise donc bien POP3 en SSL et qu'on va aller chercher les emails toutes les 5 minutes. (Ce qui est une bonne moyenne pour avoir un backup frais)

Fetchmail va envoyer tous les mails à Procmail qui s'occupera alors du stockage sur le disque dur du serveur. Editez ou créez le fichier procmailrc dans votre répertoire /etc/ (qui cas particulier de Synology se trouve dans /opt/etc/)

nano /opt/etc/procmailrc

Et ajoutez dedans les options suivants afin d'indiquer un emplacement de stockage par défaut à procmail.

MAILDIR="/volume1/Emails"
DEFAULT="/volume1/Emails/Korben.mbox"

Lancez ensuite la commande (bavarde)

fetchmail -vk (ou fetchmail tout court)

et vous devriez voir les emails être récupérés. Logiquement avec le daemon fetchmail ou avec un cron, la récupération devrait se faire correctement toutes les x minutes. Sur le Synology, j'ai toujours cette tuile sur le cron, donc ça ne fonctionne pas, mais je n'ai pas eu de souci avec un serveur linux classique. Après pour l'ouverture de la mbox sauvegardée, avec Thunderbird, ça passera sans encombre.

À noter aussi que tout ce qui est expliqué dans ce tuto fonctionne avec les comptes Google Apps.

Je suis conscient que ce tuto n'est pas sans défaut donc si l'un d'entre vous connait la raison de mes soucis sur le Synology par rapport à fetchmail et cron, ou si vous avez des choses à ajouter / corriger, je suis preneur. Ça m'aidera à faire un tuto carré pour les générations futures :-) D'avance merci.