bionic (5) mbox.5qmail.gz

Provided by: qmail_1.06-6.2~deb10u1build0.18.04.1_amd64 bug

NAME

       mbox - file containing mail messages

INTRODUCTION

       The  most common format for storage of mail messages is mbox format.  An mbox is a single file containing
       zero or more mail messages.

MESSAGE FORMAT

       A message encoded in mbox format begins with a From_ line, continues with a series  of  non-From_  lines,
       and  ends  with  a  blank  line.  A From_ line means any line that begins with the characters F, r, o, m,
       space:

            From god@heaven.af.mil Sat Jan  3 01:05:34 1996
            Return-Path: <god@heaven.af.mil>
            Delivered-To: djb@silverton.berkeley.edu
            Date: 3 Jan 1996 01:05:34 -0000
            From: God <god@heaven.af.mil>
            To: djb@silverton.berkeley.edu (D. J. Bernstein)

            How's that mail system project coming along?

       The final line is a completely blank line (no spaces or tabs).  Notice that blank lines may  also  appear
       elsewhere in the message.

       The  From_ line always looks like From envsender date moreinfo.  envsender is one word, without spaces or
       tabs; it is usually the envelope sender of the message.  date is the delivery date of  the  message.   It
       always  contains exactly 24 characters in asctime format.  moreinfo is optional; it may contain arbitrary
       information.

       Between the From_ line and the blank line is a  message  in  RFC  822  format,  as  described  in  qmail-
       header(5), subject to >From quoting as described below.

HOW A MESSAGE IS DELIVERED

       Here is how a program appends a message to an mbox file.

       It  first creates a From_ line given the message's envelope sender and the current date.  If the envelope
       sender is empty (i.e., if this is a bounce message), the program  uses  MAILER-DAEMON  instead.   If  the
       envelope sender contains spaces, tabs, or newlines, the program replaces them with hyphens.

       The program then copies the message, applying >From quoting to each line.  >From quoting ensures that the
       resulting lines are not From_ lines: the program prepends a > to any From_  line,  >From_  line,  >>From_
       line, >>>From_ line, etc.

       Finally  the  program appends a blank line to the message.  If the last line of the message was a partial
       line, it writes two newlines; otherwise it writes one.

HOW A MESSAGE IS READ

       A reader scans through an mbox file looking for From_ lines.  Any From_ line marks  the  beginning  of  a
       message.   The  reader  should  not attempt to take advantage of the fact that every From_ line (past the
       beginning of the file) is preceded by a blank line.

       Once the reader finds a message, it extracts a (possibly corrupted) envelope sender and delivery date out
       of  the  From_  line.  It then reads until the next From_ line or end of file, whichever comes first.  It
       strips off the final blank line and deletes the quoting of >From_ lines and >>From_ lines and so on.  The
       result is an RFC 822 message.

COMMON MBOX VARIANTS

       There  are  many  variants  of mbox format.  The variant described above is mboxrd format, popularized by
       Rahul Dhesi in June 1995.

       The original mboxo format quotes only From_ lines, not >From_ lines.  As a result  it  is  impossible  to
       tell whether

            From: djb@silverton.berkeley.edu (D. J. Bernstein)
            To: god@heaven.af.mil

            >From now through August I'll be doing beta testing.
            Thanks for your interest.

       was quoted in the original message.  An mboxrd reader will always strip off the quoting.

       mboxcl  format  is like mboxo format, but includes a Content-Length field with the number of bytes in the
       message.  mboxcl2 format is like mboxcl but has no  >From  quoting.   These  formats  are  used  by  SVR4
       mailers.  mboxcl2 cannot be read safely by mboxrd readers.

UNSPECIFIED DETAILS

       There are many locking mechanisms for mbox files.  qmail-local always uses flock on systems that have it,
       otherwise lockf.

       The delivery date in a From_ line does not specify a time zone.  qmail-local always creates the  delivery
       date in GMT so that mbox files can be safely transported from one time zone to another.

       If  the  mtime on a nonempty mbox file is greater than the atime, the file has new mail.  If the mtime is
       smaller than the atime, the new mail has been read.  If the atime equals the mtime, there is  no  way  to
       tell whether the file has new mail, since qmail-local takes much less than a second to run.  One solution
       is for a mail reader to artificially set the atime to the mtime plus 1.  Then the file has  new  mail  if
       and only if the atime is less than or equal to the mtime.

       Some mail readers place Status fields in each message to indicate which messages have been read.

SEE ALSO

       maildir(5), qmail-header(5), qmail-local(8)

                                                                                                         mbox(5)