mbox

NAME
DESCRIPTION
LOCKING
FILES
SEE ALSO
AUTHOR
HISTORY

NAME

mbox - Format for mail message storage.

DESCRIPTION

This document describes the format traditionally used by
Unix hosts to store mail messages locally. mbox files
typically reside in the system's mail spool, under various
names in users' Mail directories, and under the name
mbox in users' home directories.

An mbox is a text file containing an arbitrary number
of e-mail messages. Each message consists of a postmark,
followed by an e-mail message formatted according to RFC
822. The file format is line-oriented. Lines are separated
by line feed characters (ASCII 10).

A postmark line consists of the four characters
addrspec__ as defined in appendix
D of RFC 822.

The date is expected to be formatted according to the
following syntax (represented in the augmented Backus-Naur
formalism used by RFC 822):

For compatibility reasons with legacy software, two-digit years greater than or equal to 70 should be interpreted as the years 1970+, while two-digit years less than 70 should be interpreted as the years 2000-2069.

Software reading files in this format should also be
prepared to accept non-numeric timezone information such as

Example:

From roessler@does-not-exist.org Fri Jun 23 02:56:55
2000

In order to avoid mis-interpretation of lines in message
bodies which begin with the four characters

LOCKING

Since mbox files are frequently accessed by multiple
programs in parallel, mbox files should generally not
be accessed without locking.

Three different locking mechanisms (and combinations
thereof) are in general use:

fcntl(2) locking is mostly used on recent,
POSIX-compliant systems. Use of this locking method is, in
particular, advisable if mbox files are accessed
through the Network File System (NFS), since it seems the
only way to reliably invalidate NFS clients'
caches.

Dotlocking is used on all kinds of systems. In order to lock
an mbox file named folder, an application
first creates a temporary file with a unique name in the
directory in which the folder resides. The
application then tries to use the link(2) system call
to create a hard link named folder.lock to the
temporary file. The success of the link(2) system
call should be additionally verified using stat(2)
calls. If the link has succeeded, the mail folder is
considered dotlocked. The temporary file can then safely be
unlinked.

In order to release the lock, an application just unlinks
the folder.lock file.

If multiple methods are combined, implementors should make
sure to use the non-blocking variants of the fcntl(2)
and flock(2) sytem calls in order to avoid
deadlocks.

If multiple methods are combined, an mbox file must
not be considered to have been successfully locked before
all individual locks were obtained. When one of the
individual locking methods fails, an application should
release all locks it acquired successfully, and restart the
entire locking procedure from the beginning, after a
suitable delay.

The locking mechanism used on a particular system is a
matter of local policy, and should be consistently used by
all applications installed on the system which access
mbox files. Failure to do so may result in loss of
e-mail data, and in corrupted mbox
files.

FILES

/var/spool/mail/user

user's incoming mail folder.

''user''/mbox

user's archived mail messages, in his home
directory.

''user''/Mail/

A directory in user's home directory which is
commonly used to hold mbox format
folders.

Please note that any user can change the contents of pages on this site,
and therefore the Waikato Linux Users Group can offer no assurances that
the information is correct, and the information on this site is not
necessarily the opinion of the Waikato Linux Users Group, or any of its
members. If you have any complaints about the contents of this page,
please do not hesitate to contact the Waikato Linux Users Group, or, click
the Edit button!

Unless otherwise noted, all pages on this site are licensed under the
WlugWikiLicense.