Sauvegarde des mails avec Offlineimap

L’ IMAP c’est bien (synchronisation des messages envoyés et des dossiers entre les différents clients mails), mais les mails restent sur le serveur. Pour se mettre à l’abri d’un problème sur le serveur (comme celui qui a provoqué la perte des mails pour certains utilisateurs de Free), il est donc nécessaire de faire des sauvegardes. Pour cela, une solution est d’utiliser Offlineimap. Offlineimap permet de synchroniser un serveur IMAP et une boîte au format Maildir. La synchronisation signifie qu’il est possible de modifier les mails localement (avec Mutt par exemple) et les renvoyer sur le serveur. Après l’avoir installé (un coup d’apt-get, yum ou pacman), on trouve des exemples de configuration minimale et détaillé dans /usr/share/offlineimap/ pour Archlinux, /usr/share/doc/offlineimap/ pour Debian. Voici un exemple de configuration avec deux comptes (free et gmail):

[general]
accounts = free,gmail

ui = Curses.Blinkenlights        # interactif et en couleur, mais bug d'affichage
#ui = TTY.TTYUI                  # interactif simple
#ui = Noninteractive.Basic, Noninteractive.Quiet # pour les tâches cron

[Account free]
localrepository = free_local
remoterepository = free_remote

[Repository free_local]
type = Maildir
localfolders = ~/Mail/free.fr

[Repository free_remote]
type = IMAP
# ssl = yes # pas de ssl chez Free ...
remotehost = imap.free.fr
remoteuser = xxxxxxxxx

[Account gmail]
localrepository = gmail_local
remoterepository = gmail_remote

[Repository gmail_local]
type = Maildir
localfolders = ~/Mail/gmail.com
subscribedonly = no

[Repository gmail_remote]
type = Gmail
remoteuser = xxxxxxxxxx@gmail.com
realdelete = no
folderfilter = lambda foldername: foldername not in [ '[Gmail]/All Mail',
                                                      '[Gmail]/Starred',
                                                      '[Gmail]/Spam']

Quelques remarques:

  • l’interface Curses.Blinkenlights souffre d’un bug qui pète l’affichage du terminal quand Offlineimap rend la main. Il suffit de taper reset (même si rien ne s’affiche) ou de lancer Offlineimap avec la commande offlineimap ; reset
  • il y a un type de compte exprès pour Gmail
  • il est possible de mettre les mots de passe dans ce fichier de config, si on veut automatiser les backups avec une tâche cron par exemple, mais dans ce cas il vaut mieux modifier les droits du fichier pour le rendre inaccessible aux autres utilisateurs du PC (chmod 600 .offlineimaprc).
  • pour Gmail, j’ai mis un filtre (folderfilter) pour ne pas récupérer les messages avec les labels All Mail (pour éviter de télécharger les mails en double, tous mes mails ayant déjà un label), Starred et Spam.
  • pour vérifier que tout a bien fonctioné, on peut ouvrir une boite mail avec mutt: mutt -f ~/Mail/gmail.com/INBOX

Commentaires