| Current File : //var/qmail/man/cat5/mbox.0 |
Standards, Environments, and Macros mbox(5)
NNNNAAAAMMMMEEEE
mbox - file containing mail messages
IIIINNNNTTTTRRRROOOODDDDUUUUCCCCTTTTIIIIOOOONNNN
The most common format for storage of mail messages is _m_b_o_x
format. An _m_b_o_x is a single file containing zero or more
mail messages.
MMMMEEEESSSSSSSSAAAAGGGGEEEE FFFFOOOORRRRMMMMAAAATTTT
A message encoded in _m_b_o_x format begins with a FFFFrrrroooommmm____ line,
continues with a series of non-FFFFrrrroooommmm____ lines, and ends with a
blank line. A FFFFrrrroooommmm____ 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 FFFFrrrroooommmm____ line always looks like FFFFrrrroooommmm _e_n_v_s_e_n_d_e_r _d_a_t_e
_m_o_r_e_i_n_f_o. _e_n_v_s_e_n_d_e_r is one word, without spaces or tabs; it
is usually the envelope sender of the message. _d_a_t_e is the
delivery date of the message. It always contains exactly 24
characters in aaaassssccccttttiiiimmmmeeee format. _m_o_r_e_i_n_f_o is optional; it may
contain arbitrary information.
Between the FFFFrrrroooommmm____ line and the blank line is a message in
RFC 822 format, as described in qqqqmmmmaaaaiiiillll----hhhheeeeaaaaddddeeeerrrr((((5555)))), subject to
>>>>FFFFrrrroooommmm qqqquuuuoooottttiiiinnnngggg as described below.
HHHHOOOOWWWW AAAA MMMMEEEESSSSSSSSAAAAGGGGEEEE IIIISSSS DDDDEEEELLLLIIIIVVVVEEEERRRREEEEDDDD
Here is how a program appends a message to an _m_b_o_x file.
It first creates a FFFFrrrroooommmm____ 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
MMMMAAAAIIIILLLLEEEERRRR----DDDDAAAAEEEEMMMMOOOONNNN instead. If the envelope sender contains
spaces, tabs, or newlines, the program replaces them with
hyphens.
The program then copies the message, applying >>>>FFFFrrrroooommmm qqqquuuuoooottttiiiinnnngggg
to each line. >>>>FFFFrrrroooommmm qqqquuuuoooottttiiiinnnngggg ensures that the resulting
lines are not FFFFrrrroooommmm____ lines: the program prepends a >>>> to any
SunOS 5.11 Last change: 1
Standards, Environments, and Macros mbox(5)
FFFFrrrroooommmm____ line, >>>>FFFFrrrroooommmm____ line, >>>>>>>>FFFFrrrroooommmm____ line, >>>>>>>>>>>>FFFFrrrroooommmm____ 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.
HHHHOOOOWWWW AAAA MMMMEEEESSSSSSSSAAAAGGGGEEEE IIIISSSS RRRREEEEAAAADDDD
A reader scans through an _m_b_o_x file looking for FFFFrrrroooommmm____ lines.
Any FFFFrrrroooommmm____ line marks the beginning of a message. The reader
should not attempt to take advantage of the fact that every
FFFFrrrroooommmm____ 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
FFFFrrrroooommmm____ line. It then reads until the next FFFFrrrroooommmm____ line or end
of file, whichever comes first. It strips off the final
blank line and deletes the quoting of >>>>FFFFrrrroooommmm____ lines and
>>>>>>>>FFFFrrrroooommmm____ lines and so on. The result is an RFC 822 message.
CCCCOOOOMMMMMMMMOOOONNNN MMMMBBBBOOOOXXXX VVVVAAAARRRRIIIIAAAANNNNTTTTSSSS
There are many variants of _m_b_o_x format. The variant
described above is _m_b_o_x_r_d format, popularized by Rahul Dhesi
in June 1995.
The original _m_b_o_x_o format quotes only FFFFrrrroooommmm____ lines, not
>>>>FFFFrrrroooommmm____ 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 _m_b_o_x_r_d reader will
always strip off the quoting.
_m_b_o_x_c_l format is like _m_b_o_x_o format, but includes a Content-
Length field with the number of bytes in the message.
_m_b_o_x_c_l_2 format is like _m_b_o_x_c_l but has no >>>>FFFFrrrroooommmm quoting.
These formats are used by SVR4 mailers. _m_b_o_x_c_l_2 cannot be
read safely by _m_b_o_x_r_d readers.
UUUUNNNNSSSSPPPPEEEECCCCIIIIFFFFIIIIEEEEDDDD DDDDEEEETTTTAAAAIIIILLLLSSSS
There are many locking mechanisms for _m_b_o_x files. qqqqmmmmaaaaiiiillll----
llllooooccccaaaallll always uses fffflllloooocccckkkk on systems that have it, otherwise
lllloooocccckkkkffff.
The delivery date in a FFFFrrrroooommmm____ line does not specify a time
zone. qqqqmmmmaaaaiiiillll----llllooooccccaaaallll always creates the delivery date in GMT
so that _m_b_o_x files can be safely transported from one time
zone to another.
SunOS 5.11 Last change: 2
Standards, Environments, and Macros mbox(5)
If the mtime on a nonempty _m_b_o_x 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 qqqqmmmmaaaaiiiillll----llllooooccccaaaallll 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 SSSSttttaaaattttuuuussss fields in each message to
indicate which messages have been read.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
maildir(5), qmail-header(5), qmail-local(8)
SunOS 5.11 Last change: 3