7.3.1.2 mbox

###
7.3.1.2 `mbox`

class `mbox`( | path[, factory=None[, create=True]])

  A subclass of `Mailbox` for mailboxes in mbox format. Parameter factory is a callable object that accepts a file-like message representation (which behaves as if opened in binary mode) and returns a custom representation. If factory is `None`, `mboxMessage` is used as the default message representation. If create is `True`, the mailbox is created if it does not exist.

The mbox format is the classic format for storing mail on Unix systems. All messages in an mbox mailbox are stored in a single file with the beginning of each message indicated by a line whose first five characters are "From ".

Several variations of the mbox format exist to address perceived shortcomings in the original. In the interest of compatibility, `mbox` implements the original format, which is sometimes referred to as mboxo. This means that the Content-Length: header, if present, is ignored and that any occurrences of "From " at the beginning of a line in a message body are transformed to ">From " when storing the message, although occurences of ">From " are not transformed to "From " when reading the message.

Some `Mailbox` methods implemented by `mbox` deserve special remarks:

`get_file`( | key)

  Using the file after calling `flush()` or `close()` on the `mbox` instance may yield unpredictable results or raise an exception.

`lock`( | )

`unlock`( | )

  Three locking mechanisms are used--dot locking and, if available, the `flock()` and `lockf()` system calls.

See Also:

mbox man page from qmail
  A specification of the format and its variations.

mbox man page from tin
  Another specification of the format, with details on locking.

Configuring Netscape Mail on Unix: Why The Content-Length Format is Bad
  An argument for using the original mbox format rather than a variation.

"mbox" is a family of several mutually incompatible mailbox formats
  A history of mbox variations.