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 :
- l’ensemble de son courier électronique
- sa liste de contact, éventuellement partagée avec son téléphone intelligent
- de même avec ses rendez-vous et évènements
- un outil de lecture de flux RSS (vous vous souvenez peut-être de Google Reader)
- un outil d’archivage d’article à lire plus tard (vous connaissez peut-être Pocket)
- et beaucoup d’autres
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 :)