Configuration OfflineIMAP

Un nouveau jouet a fait son apparition chez moi ce week-end : une Brique Internet. Pour celles et ceux qui ne connaitraient pas les tenants et les aboutissants de ce genre de matériel, il s’agit tout simplement d’une réponse coordonnée par différentes associations œuvrant pour la défense des usagers du Net aux attaques continues des pouvoirs publiques et de groupes privées sur notre liberté d’expression et notre vie privée sur ce même internet. Vous trouverez sur le site de la brique une liste de liens vous permettant de mieux saisir les enjeux en question.

Autrement dit, il s’agit d’un ordinateur microscopique permettant d’héberger chez soi, à domicile (et donc en dehors de l’aire d’influence et de surveillance de Google, Microsoft, La Poste, SFR, Orange, etc.) les services suivantes :

En ce qui me concerne, j’ai pu obtenir tout le matériel disponible auprès de mon Fournisseur d’Accès à Internet sur Nantes : FAIMaison. Si la question vous intéresse, je vous invite à vous renseigner sur le site de la fédération des fournisseurs d’accès internet associatifs, il en existe sûrement un près de chez vous ! Sans doute tout près à vous aider à monter votre propre brique :)

OfflineIMAP et mu

Et donc que vient faire OfflineIMAP dans cette affaire ? OfflineIMAP est un logiciel libre multiplateforme (mais il faut quand même passer par Cygwin sous Windows) écrit en Python permettant de rappatrier sur sa machine l’ensemble du courrier électronique stocké sur un serveur IMAP. Ce logiciel va même plus loin puisqu’il permet non seulement de rappatrier son courrier (très utile pour effectuer des sauvegardes de temps à autre), mais surtout de le synchroniser en renvoyant, au besoin, sur le même serveur IMAP les changements intervenu sur le dépôt local.

Vous l’aurez compris, il s’agit de la solution que j’utilise depuis un moment déjà pour avoir accès à mon courier depuis mes différents ordinateurs. En pratique, j’utilise OfflineIMAP pour synchroniser quatre comptes email différents dans ~/Mail. Je couple alors OfflineIMAP avec mu. Ce dernier est un moteur de recherche local, construit autour de Xapian, permettant d’indexer votre courier afin d’y effectuer des recherches complexes. Il s’agit là encore d’un logiciel libre.

Cas d’usage

Bien que les tutoriaux disponibles sur le Net soient extrêmement nombreux et bien fait, il me restait deux soucis peu évoqués ailleurs que j’ai pu régler ce week-end. Je vous donne donc ici les solutions trouvées.

Le premier problème était un peu embêtant car il s’agissait d’un bug inhérent à OfflineIMAP : dans le cas où, pour les raisons de factorisation de configuration vous aviez placé l’option autorefresh dans la section DEFAULT de votre fichier de configuration, OfflineIMAP ne réagissait plus à l’option -o (run Once, ne pas lancer en mode démon) passé en paramètre de ligne de commande.

Après avoir déposé un rapport de bug, j’ai proposé le patch qui va bien. J’ai corrigé directement chez moi, un souci en moins.

Le second problème que je rencontrais était beaucoup plus trivial. Il suffisait de se poser pour réfléchir un peu. Si je peux vous éviter de perdre du temps, tant mieux ! Du fait de mon usage particulier de gestion des mails, je souhaitais lancer une indexation de mon courier par mu suite à chaque synchronisation d’OfflineIMAP. Ce dernier propose une option de configuration pour ça : postsynchook

Mais voilà, comme je synchronise quatre compte IMAP différents dans le même dépôt Maildir, suivant la vitesse de synchronisation il arrivait fréquement que je lance une seconde fois mu sur le même dossier. S’ensuivait un message d’erreur de mu que je souhaitais éviter.

La solution a été tout simplement de renseigner cette option de configuration par la ligne de code bash ci-après, qui teste dans un premier temps si une instance de mu est déjà en cours de fonctionnement : ! pgrep -x mu && mu index -q --maildir=~/Mail

Me voilà désormais l’heureux utilisateur d’une solution de synchronisation stable de mes mails :)