lundi, mai 15 2006

Stockage des mails dans une base de données

Il existe à ma connaissance deux produits libres dans ce domaine : DBmail et oryx. Attention toutefois, oryx a une licence double, style MySQL... donc pas vraiment libre mais un peu quand même. Bref.

J'ai commencé par tester DBmail. Premier bon point, il existe un paquet debian installable avec un simple apt-get install dbmail-pgsql. Il faut ensuite créer un utilisateur spécifique (createuser dbmail), ajouter une base de données qui lui appartient (createdb -O dbmail dbmail), préciser les infos de connexion dans pg_hba.conf (si c'est nécessaire). Ceci fait, vous pouvez relancer dpkg-reconfigure dbmail-pgsql pour configurer plus facilement le fichier /etc/dbmail/dbmail.conf. Dernière étape, trouvez le fichier de création du schéma de la base et l'exécutez. Sous une Debian ou sous une (K)ubuntu, il se trouve dans /usr/share/doc/dbmail/examples). Jusqu'ici, c'est un peu trop simple. Mais voilà, ça fonctionne. Ne vous reste plus qu'à insérer des mails. Si vous avez des fichiers mailbox, c'est sans problème avec formail. Si vous avez un format Maildir, ça devient bien compliqué. Pour être franc, je n'ai toujours pas réussi malgré mes essais avec imapsync et mailsync. Donc, j'ai envoyé fichier par fichier dans formail, ce qui est particulièrement long mais fonctionnel. Le gros problème vient ensuite. J'ai utilisé KMail et Thunderbird... ils ont tous les deux des problèmes avec le serveur imap fourni avec DBmail.

J'ai ensuite testé oryx. Mauvais point, pas de paquet Debian. Par contre, vous pouvez compiler un installeur (gmake, gmake install puis lib/installer). Le reste est à peu près identique, création utilisateur, base, modification du pg_hba.conf, ajout du schéma... ainsi que les problèmes avec le serveur imap...

Entre les deux et hors le problème de licence bizarre pour oryx, je dois avouer que le schéma d'oryx me semble bien mieux conçu que celui de DBmail et doit permettre pas mal d'amusement en tout genre.

Je vais continuer à travailler là-dessus car c'est un domaine qui me paraît très intéressant (et je ne suis pas le seul à trouver cela intéressant).