Content-type: text/html
mbox - Format d'enregistrement de courrier électronique.
Ce document décrit le format traditionnellement utilisé par les machines Unix pour stocker localement la messagerie électronique. Les fichiers mbox résident généralement dans le spoule de messagerie du système, dans les répertoires Mail des utilisateurs sous différents noms, et dans les répertoires racines des utilisateurs sous le nom mbox.
Une boîte mbox est un fichier texte contenant un nombre arbitraire de courriers électroniques. Chaque message consiste en un cachet, suivi par un message formaté selon la RFC 822. Le format du fichier est de type "orienté-ligne". Les lignes sont séparées par des caractères de fin de ligne (line-feed, ASCII 10).
Une ligne de cachet est constituée en séquence des quatre caractères "From", un caractère espace, l'adresse de l'émetteur de l'enveloppe du message, un caractère espace, et d'une indication temporelle (time-stamp). L'adresse de l'émetteur est censée être au format addrspec décrit en annexe D de la RFC 822.
La date doit être formatée suivant la syntaxe suivante (proposée dans le formalisme étendu de Backus-Naur utilisé par la RFC 822) :
mbox-date | = | weekday month day time [ timezone ] year |
weekday | = | "Mon" / "Tue" / "Wed" / "Thu" / "Fri" |
/ "Sat" / "Sun" | ||
month | = | "Jan" / "Feb" / "Mar" / "Apr" / "May" |
/ "Jun" / "Jul" / "Aug" / "Sep" | ||
/ "Oct" / "Nov" / "Dec" | ||
day | = | 1*2DIGIT |
time | = | 1*2DIGIT ":" 1*2DIGIT [ ":" 1*2DIGIT ] |
timezone | = | ( "+" / "-" ) 4DIGIT |
year | = | ( 4DIGIT / 2DIGIT ) |
Pour des raisons de compatibilité avec les logiciels existants, les années codées sur deux chiffres supérieures ou égales à 70 devraient être interprétées comme les années suivant 1970, et les années codées sur deux chiffres inférieures à 70 devraient être interprétées comme les années comprises entre 2000 et 2069.
Les logiciels exploitant les fichiers de ce format doivent aussi prévoir des informations de zone horaire non numériques, comme "CET DST" pour "Central European Time, Dailight Saving Time".
Exemple :
Afin d'éviter des erreurs d'interprétation pour des lignes du corps du message qui commenceraient par les quatre caractères "From" suivis par un caractère espace, le caractère ">" et habituellement ajouté au début de telles lignes.
Parce que les fichiers mbox sont régulièrement lus par plusieurs programmes en parallèle, ils ne devraient en général pas être accédés sans verrouillage.
Trois types différents de mécanismes de verrouillage (et leurs combinaisons) sont utilisés en général :
Si plusieurs méthodes sont combinées, les responsables de l'implémentation doivent s'assurer d'utiliser des variantes non bloquantes des appels systèmes fcntl(2) et flock(2) afin d'éviter des inter-blocages.
Si plusieurs méthodes sont combinées, un fichier mbox ne doit pas être considéré comme ayant été verrouillé avec succès avant que chaque verrou n'ait été obtenu. Si une des méthodes de verrouillage échoue, une application devrait libérer tous les verrous qu'il a acquis avec succès, et recommencer entièrement la procédure de verrouillage depuis le début, après avoir attendu un délai adéquat.
Le mécanisme de verrouillage utilisé sur un système donné est une affaire de politique locale, et devrait être utilisé de manière uniforme par toutes les applications installées sur le dit système qui accèdent aux fichiers mbox. Ne pas suivre cette préconisation peut entraîner des pertes de données de messagerie et la corruption de fichiers mbox.
elm(1), fcntl(2), flock(2), link(2), local(8), mail(1), maildir(5), mail.local(8), mutt(1), mutt_dotlock(1), pine(1), procmail(1), sendmail(8)
D. Crocker, Standard for the format of ARPA Internet text messages, RFC 822
M. R. Horton, UUCP mail interchange format standard, RFC 976
Ce document a été écrit par Thomas Roessler <roessler@does-not-exist.org>.
Le format mbox est apparu dans la version 6 de AT&T Unix.
Une variante de ce format a été décrite dans la RFC 976.