Première rédaction de cet article le 16 février 2006
Il est bien pratique de pouvoir garder trace de ses correspondants. Certains logiciels de messagerie le font automatiquement mais, dans un esprit plus unixien, je cherchais une solution indépendante du MUA. Voici comment j'ai fait.
Lorsque le courrier arrive, il est délivré par procmail qui a une recette :
:0c:tmp/extract-from.lock * !^FROM_DAEMON * ^TO_(bortz|bortzmeyer|stephane) * !^X-Spam-Flag: *YES * !^X-Bogosity: *(YES|Spam) | $HOME/bin/extract-from.py
Elle se lit ainsi : si le message ne vient pas d'un
démon, s'il est bien pour moi personnellement (et
pas envoyé à une liste dont je suis membre),
s'il n'est pas un spam, alors, le soumettre au
programme extract-from.py
.
Ce programme extrait les en-têtes et les mets dans une base de donnée indexée (utilisant Berkeley DB).
Cette base peut ensuite être consultée avec le programme
display-from.py
:
% display-from.py foobar Joe Foobar <fu@example.org>: 19 times (last time 09 September 2004) % display-from.py 'foo?bar' Joe Foobar <fu@example.org>: 19 times (last time 09 September 2004) Jill Fobar <jf@example.com>: 1 times (last time 13 October 2005)
Comme on le voit, ce programme permet de chercher par expression rationnelle, et affiche non seulement l'adresse mais également le nombre de messages et la date du plus récent (ce qui donne une idée de la fraicheur de l'information).
La base étant en binaire, il est raisonnable
de la sauvegarder régulièrement sous forme texte avec le script backup-db
, lancé
par cron.
Vous pouvez récupérer les fichiers cités ici :
À faire : ce fichier étant nominatif, le déclarer à la CNIL. Si chaque possesseur de PDA ou de logiciel stockant les carnets d'adresse en faisaient autant, la CNIL s'écroulerait.
Une alternative à ce bricolage local est d'utiliser le logiciel Little Brother's Database (lbdb) mais je ne l'ai pas encore testé.
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)