Sauvegarder son Gmail grâce à Linux

Le 16 juin 2010 — par

Comme beaucoup de gens autour de moi, je suis parano de la sauvegarde. Certains le sont de naissance, d’autres parce qu’ils ont perdu beaucoup de données un jour (DTC !)… J’ai vécu les deux, et même avec Gmail (compte piraté il y a quelques années).

Pour mes e-mails, j’ai pendant très longtemps utilisé gmail-backup, qui faisait tout ce qu’on lui demandait de faire en voyant son nom. Seulement Gmail a mis à jour ses serveurs IMAP il y a peu de temps, rendant inutilisable gmail-backup.

Les serveurs IMAP de Gmail possédaient un bug depuis leur lancement. En récupérant les e-mails via IMAP par la méthode traditionnelle (RFC822), les e-mails n’étaient pas marqués comme lus. Cependant la RFC précise qu’ils devraient l’être. Ce bug a été corrigé il y a quelques semaines, et j’ai eu le bonheur de voir mes nouveaux e-mails marqués comme lus du jour au lendemain :)

3a45.png

Le script n’étant pas open-source et la dernière version datant d’il y a environ un an, je pense qu’il est raisonnable de penser que le développement de gmail-backup est mort. J’ai donc dû trouver un remplaçant.

Ce remplaçant s’appelle getmail. Au premier abord, drôle de remplaçant, puisqu’il est connu pour utiliser la RFC822. Son créateur maintient cependant que c’est lui qui a raison et non Google dans cette histoire d’e-mails marqués comme lus. Qu’à cela ne tienne, contrairement à gmail-backup, getmail est open-source, il suffit de modifier la récupération des e-mails et le problème est résolu.

Voici donc une longue introduction pour un petit tutorial sur comment sauvegarder votre Gmail sous Linux.

Télécharger et modifier getmail

A la main

A vrai dire c’est assez simple. Téléchargez tout d’abord les sources de getmail. Il faut jeter ensuite un oeil dans getmailcore/_retrieverbases.py pour y faire une modification. Trouvez la ligne suivante :

[bash]return self._getmsgpartbyid(msgid, ‘(RFC822)’)[/bash]

C’est cette fameuse RFC822 qui nous fait chier et qui met les e-mails téléchargés comme lus automatiquement. Remplacez-la par une commande PEEK :

[bash]return self._getmsgpartbyid(msgid, ‘(BODY.PEEK[])’)[/bash]

Vous vivrez ainsi heureux.

Paresseux

Vous vivrez tout aussi heureux en prenant ma version déjà modifiée.

Installer getmail

L’installation se fait ensuite comme à peu près tous les logiciels Python, à savoir avec deux lignes de commande dans la racine des sources getmail :

[bash]python setup.py build python setup.py install[/bash]

Configurer getmail

Maintenant que getmail est modifié et installé, il faut créer le fichier de configuration qui va indiquer à getmail quoi prendre et où prendre. Commencez par créer un dossier .getmail dans votre répertoire utilisateur, ainsi qu’un répertoire gmail et son fichier mbox pour stocker la sauvegarde.

[bash]mkdir ~/.getmail mkdir ~/gmail touch ~/gmail/gmail-backup.mbox[/bash]

Dans ce répertoire, créons un fichier de configuration, appelé au hasard getmail.gmail, qui contiendra les informations suivantes :

[text][retriever] type = SimpleIMAPSSLRetriever server = imap.gmail.com username = /* Votre e-mail Gmail / password = / Votre mot de passe Gmail */ mailboxes = ("[Gmail]/All Mail",)

[destination] type = Mboxrd path = ~/gmail/gmail-backup.mbox

[options] read_all = false verbose = 2 message_log = ~/.getmail/gmail.log[/text]

Remplacez évidemment username et password (je le dis quand même, on ne sait jamais).

Sauvegarder !

L’utilisation de l’IMAP permet de tout télécharger en une fois lors de la première synchronisation. Avec du POP Gmail permet de ne récupérer que 500 e-mails à la fois environ.

Pour faire une première sauvegarde intégrale, tapez la commande suivante (prévoyez un café si vous avez beaucoup d’e-mails) :

[bash]/usr/bin/getmail -la -r getmail.gmail[/bash]

Si cette première récupération s’est déroulée sans accrocs, vous pouvez mettre la commande suivante dans un crontab, qui va récupérer uniquement les nouveaux mails sur votre compte :

[bash]/usr/bin/getmail -ln -r getmail.gmail[/bash]

Et voilà, vous n’aurez plus à craindre un tremblement de terre qui ferait imploser tous les datacenters de Google. Vos e-mails sont tous chez vous, et vous pouvez continuer à utiliser l’interface si pratique de Gmail en toute sécurité.

PS : Evidemment cela peut s’adapter à à peu près n’importe quel fournisseur de courrier électronique. J’ai titré Gmail car le patch de getmail était nécessaire pour que ça fonctionne en particulier avec le service de Google.

S'abonner au flux RSS du blog
Recevoir les nouveaux articles par e-mail :