Midilibre.fr
Tous les blogs | Alerter le modérateur| Envoyer à un ami | Créer un Blog

16/02/2009

[format] - Le format Mbox/Maildir ?

johnny_automatic_hamper_crate.pngHier j'étais devant un PC avec une version un peu vieillotte de kmail (je pense qu'elle doit dater de deux ans) et face à cette KDE 3.5, on m'a posé une question toute bête : Comment est-ce que je lis mes fichiers mail que j'ai enregistré en faisant "Enregistrer sous" ? ... réponse immédiate avec kmail ! hé bien non, ce n'est pas si simple.

Reconstituons les faits : vous faites "enregistrer sous" et Kmail (dans cette version du moins, car dans les dernières moutures cela fonctionne) ne propose pas d'extension, il se retrouve donc dans l'incapacité de lire le fichier, et même si vous tentez de faire ouvrir avec -> kmail, ça ne marche pas.... diable ! mais quel est donc l'extension utilisé par Kmail pour lui dire d'ouvrir automatiquement le fichier et dans le bon format ? La réponse est venu toute seule en regardant les versions ultérieures de kmail : il s'agit de *.mbox. (l'extension à été rajouté par la suite ce qui est plus logique).

Ainsi dans notre cas de figure, si on veut lire le fameux fichier il suffit de rajouter l'extension .mbox et tout fonctionne.

Mais qu'est-ce que ce fameux format mbox ?

C'est une famille de format ouvert de stockage du courrier, qui repose sur trois principes :

-> un fichier égal un dossier (on y stocke tout les messages dedans)
-> codage en ASCII 7 bits (95 caractères ASCII...)
-> une ligne vide suivi du champs From en début de ligne permet la séparation des messages

... à la vue de ce dernier point, que se passe t'il si j'écris le mot From en anglais dans mon email ? le texte est alors modifié et on y rajoute un symbole supérieur à.

Il existe plusieurs types de mbox chacun incompatible avec les autres : mboxo(eudora), mboxrd (utilisé par thunderbird par exemple), mboxcl  et mboxcl2 (ces derniers proviennent d' unix systéme V rc4), aucun de ces formats n'a été standardisé dans une RFC.

Comme plusieurs messages peuvent être dans un seul fichier, il est obligatoire de mettre en place un système de lock pour éviter la corruption du fichier, en effet si un programme essaie de modifier deux emails du même dossier, on court à la catastrophe. Et tout comme il existe plusieurs familles incompatible de mbox, il existe plusieurs familles de "lock" possible.... décidément rien n'est simple au pays de la mbox.

Aprés lecture de tout ces éléments je me sentais un peu perdu par rapport à cette incompatibilité, sous entendu, cela voulait il dire que si j'"enregistre sous" un message a partir de Kmail je ne pourrais pas le lire sous thunderbird ? aprés différents test je me sens mieux.... dans un sens comme dans l'autre cela fonctionne. Kmail sait lire les eml de thunderbird et thunderbird lis les mbox de kmail. Pourtant quelque chose n'était pas clair.... autant thunderbird avait bien l'odeur d'une mbox (encodage, 1fichier=1dossier...) autant quand on regarde dans ~/.kde/share/apps/kmail/mail on voit bien qu'il y a un fichier pour un mail, ca ne colle pas.... et surtout on a une structure à trois répertoire : cur/ new/ et tmp/ ... kmail propose donc par défaut une structure maildir (la même utilisé par exemple par mutt)

Bon alors c'est quoi Maildir ?

Ici, chaque email est égal à un fichier, dont le nom est généré automatiquement de manière a étre unique. Lorsque le logiciel récupére un email il le place dans le dossier tmp/, une fois réceptionné il est déplacé dans le répertoire new/ ainsi le logiciel de messagerie n'a qu'a allez piocher dans ce répertoire pour y prendre les messages et vous les délivrer (dossier cur/). L'avantage de ce système sur mbox est que l'on a plus besoin de locker le fichier. Maildir à la différence de mbox est régulé par un standard : le RFC822.

Parfois une simple question peut vous amener dans un abysse sans fond...