J'utilise KMail comme client de mail, et il stocke mes mails dans des dossiers au format Maildir. Jusque-là, tout va bien. Mais je suis souvent en déplacement et il m'arrive d'avoir besoin de lire un de mes mails parce qu'il contient une info importante que j'ai évidemment oublié de noter.

Donc ce qu'il me fallait, c'était un espece de webmail très simple, en lecture seule, qui aille lire mes dossiers Maildir de KMail.

Une des solutions aurait pu être d'utiliser un serveur IMAP en local, et de connecter KMail en local à ce serveur, mais c'est quand même beaucoup plus de complication (il faut récupérer les mails avec fetchmail et convertir mes filtres en règles Procmail...)

Moi je voulais juste un truc qui me permette de parcourir mes dossiers Maildir et de lire les mails dedans.

Et bien devinez quoi : ça n'existait pas ! Dans les trillions de webmails qui existent, il n'y en avait pas qui traite directement les fichiers Maildir (sauf un, sqwebmail, mais c'est un CGI en C, et SUID en plus, qui a besoin du serveur d'authentification de Courier pour marcher)

Qu'à cela ne tienne, j'ai écrit mon propre script CGI, en python bien sûr, qui fait exactement ce que je veux.

Alors évidemment, c'est simplissime, ça tient en 170 lignes avec beaucoup de lignes vides, mais ça fait le boulot.

Il n'y a pas d'authentification, ça ne marche que pour un user, et on donne la racine des dossiers Maildir au début du fichier. Autant dire que c'est très très léger en fonctionnalités. Mais il est quand même capable de parcourir des dossiers et sous-dossiers, de lire des dossiers au format Maildir, de lire les mails dedans, et de récupérer les attachements à ces mails.

Si ça vous intéresse, il suffit de

  • le mettre dans le dossier cgi-bin de votre serveur web,
  • le rendre exécutable,
  • régler le chemin du dossier mail au début du fichier
  • mettre une ligne "User votre-user" dans la section du virtualhost de apache pour que le script s'exécute avec les droits de votre user
  • protéger le script par un .htaccess

Et si vous avez besoin de ce script pour plusieurs users, il suffit de le mettre dans un autre virtualhost avec la directive "User" réglée au bon user, et c'est tout.

J'ai testé ce script avec Python 2.4. Je pense que ça devrait tourner avec Python 2.3 voire 2.2, mais j'ai pas testé. Si vous en avez besoin et que vous utilisez une version plus vieille que 2.4, dites-moi où ça coince.

Voilà, si ça vous a été utile, laissez-moi un petit mot :)