\section{\module{mailbox} ---
         Read various mailbox formats}

\declaremodule{standard}{mailbox}
\modulesynopsis{Read various mailbox formats.}


This module defines a number of classes that allow easy and uniform
access to mail messages in a (\UNIX{}) mailbox.

\begin{classdesc}{UnixMailbox}{fp}
Access a classic \UNIX{}-style mailbox, where all messages are contained
in a single file and separated by ``From name time'' lines.
The file object \var{fp} points to the mailbox file.
\end{classdesc}

\begin{classdesc}{MmdfMailbox}{fp}
Access an MMDF-style mailbox, where all messages are contained
in a single file and separated by lines consisting of 4 control-A
characters.  The file object \var{fp} points to the mailbox file.
\end{classdesc}

\begin{classdesc}{MHMailbox}{dirname}
Access an MH mailbox, a directory with each message in a separate
file with a numeric name.
The name of the mailbox directory is passed in \var{dirname}.
\end{classdesc}

\begin{classdesc}{Maildir}{dirname}
Access a Qmail mail directory.  All new and current mail for the
mailbox specified by \var{dirname} is made available.
\end{classdesc}

\begin{classdesc}{BabylMailbox}{fp}
Access a Babyl mailbox, which is similar to an MMDF mailbox.  Mail
messages start with a line containing only \code{'*** EOOH ***'} and
end with a line containing only \code{'\037\014'}.
\end{classdesc}


\subsection{Mailbox Objects \label{mailbox-objects}}

All implementations of Mailbox objects have one externally visible
method:

\begin{methoddesc}[mailbox]{next}{}
Return the next message in the mailbox, as a \class{rfc822.Message} object.
Depending on the mailbox implementation the \var{fp} attribute of this
object may be a true file object or a class instance simulating a file object,
taking care of things like message boundaries if multiple mail messages are
contained in a single file, etc.
\end{methoddesc}
