| Current File : //var/qmail/man/cat5/qmail-header.0 |
Standards, Environments, and Macros qmail-header(5)
NNNNAAAAMMMMEEEE
qmail-header - format of a mail message
OOOOVVVVEEEERRRRVVVVIIIIEEEEWWWW
At the top of every mail message is a highly structured
hhhheeeeaaaaddddeeeerrrr. Many programs expect the header to carry certain
information, as described below. The main function of
qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt is to make sure that each outgoing message has
an appropriate header.
For more detailed information, see
hhhhttttttttpppp::::////////ppppoooobbbbooooxxxx....ccccoooommmm////~~~~ddddjjjjbbbb////pppprrrroooottttoooo////iiiimmmmmmmmhhhhffff....hhhhttttmmmmllll.
MMMMEEEESSSSSSSSAAAAGGGGEEEE SSSSTTTTRRRRUUUUCCCCTTTTUUUURRRREEEE
A message contains a series of _h_e_a_d_e_r _f_i_e_l_d_s, a blank line,
and a _b_o_d_y:
Received: (qmail-queue invoked by uid 666);
30 Jul 1996 11:54:54 -0000
From: djb@silverton.berkeley.edu (D. J. Bernstein)
To: fred@silverton.berkeley.edu
Date: 30 Jul 1996 11:54:54 -0000
Subject: Go, Bears!
I've got money on this one. How about you?
---Dan (this is the third line of the body)
Each header field has a _n_a_m_e, a colon, some _c_o_n_t_e_n_t_s, and a
newline:
Subject: Go, Bears!
The field contents may be folded across several lines. Each
line past the first must begin with a space or tab:
Received: (qmail-queue invoked by uid 666);
30 Jul 1996 11:54:54 -0000
The field name must not contain spaces, tabs, or colons.
Also, an empty field name is illegal. qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt does not
allow field names with unprintable characters.
Case is irrelevant in field names: ssssuuuubbbbjjjjeeeecccctttt and SSSSUUUUBBBBJJJJEEEECCCCTTTT and
SSSSuuuuBBBBjjjjEEEEccccTTTT have the same meaning.
AAAADDDDDDDDRRRREEEESSSSSSSS LLLLIIIISSSSTTTTSSSS
Certain fields, such as TTTToooo, contain _a_d_d_r_e_s_s _l_i_s_t_s.
An address list contains some number of _a_d_d_r_e_s_s_e_s or _a_d_d_r_e_s_s
_g_r_o_u_p_s, separated by commas:
SunOS 5.11 Last change: 1
Standards, Environments, and Macros qmail-header(5)
a@b, c@d (Somebody), A Person <e@f>,
random group: g@h, i@j;, k@l
An _a_d_d_r_e_s_s _g_r_o_u_p has some text, a colon, a list of
addresses, and a semicolon:
random group: g@h, i@j;
An address can appear in several forms. The most common
form is _b_o_x@_h_o_s_t.
Every address must include a host name. If qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt
sees a lone box name it adds the _d_e_f_a_u_l_t _h_o_s_t _n_a_m_e.
All host names should be fully qualified. qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt
appends the _d_e_f_a_u_l_t _d_o_m_a_i_n _n_a_m_e to any name without dots:
djb@silverton -> djb@silverton.berkeley.edu
It appends the _p_l_u_s _d_o_m_a_i_n _n_a_m_e to any name that ends with a
plus sign:
eric@mammoth.cs+ -> eric@mammoth.cs.berkeley.edu
A host name may be a dotted-decimal address:
djb@[128.32.183.163]
RFC 822 allows mailbox names inside angle brackets to
include _s_o_u_r_c_e _r_o_u_t_e_s, but qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt strips all source
routes out of addresses.
SSSSEEEENNNNDDDDEEEERRRR AAAADDDDDDDDRRRREEEESSSSSSSSEEEESSSS
qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt looks for sender address lists in the following
fields: SSSSeeeennnnddddeeeerrrr, FFFFrrrroooommmm, RRRReeeeppppllllyyyy----TTTToooo, RRRReeeettttuuuurrrrnnnn----PPPPaaaatttthhhh, RRRReeeettttuuuurrrrnnnn----
RRRReeeecccceeeeiiiipppptttt----TTTToooo, EEEErrrrrrrroooorrrrssss----TTTToooo, RRRReeeesssseeeennnntttt----SSSSeeeennnnddddeeeerrrr, RRRReeeesssseeeennnntttt----FFFFrrrroooommmm, RRRReeeesssseeeennnntttt----
RRRReeeeppppllllyyyy----TTTToooo.
If there is no FFFFrrrroooommmm field, qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt adds a new FFFFrrrroooommmm
field with the name of the user invoking qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt....
RFC 822 requires that certain sender fields contain only a
single address, but qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt does not enforce this res-
triction.
RRRREEEECCCCIIIIPPPPIIIIEEEENNNNTTTT AAAADDDDDDDDRRRREEEESSSSSSSSEEEESSSS
qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt looks for recipient address lists in the fol-
lowing fields: TTTToooo, CCCCcccc, BBBBcccccccc, AAAAppppppppaaaarrrreeeennnnttttllllyyyy----TTTToooo, RRRReeeesssseeeennnntttt----TTTToooo,
RRRReeeesssseeeennnntttt----CCCCcccc, RRRReeeesssseeeennnntttt----BBBBcccccccc.
Every message must contain at least one TTTToooo or CCCCcccc or BBBBcccccccc.
qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt deletes any BBBBcccccccc field. If there is no TTTToooo or CCCCcccc
SunOS 5.11 Last change: 2
Standards, Environments, and Macros qmail-header(5)
field, qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt adds a line
Cc: recipient list not shown: ;
This complies with RFC 822; it also works around some
strange sssseeeennnnddddmmmmaaaaiiiillll behavior, in case the message is passed
through sssseeeennnnddddmmmmaaaaiiiillll on another machine.
SSSSTTTTAAAAMMMMPPPPSSSS
Every message must contain a DDDDaaaatttteeee field, with the date in a
strict format defined by RFC 822. If necessary qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt
creates a new DDDDaaaatttteeee field with the current date (in GMT).
Every message should contain a MMMMeeeessssssssaaaaggggeeee----IIIIdddd field. The field
contents are a unique worldwide identifier for this message.
If necessary qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt creates a new MMMMeeeessssssssaaaaggggeeee----IIIIdddd field.
Another important field is RRRReeeecccceeeeiiiivvvveeeedddd. Every time the message
is sent from one system to another, a new RRRReeeecccceeeeiiiivvvveeeedddd field is
added to the top of the message. qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt does not
create any RRRReeeecccceeeeiiiivvvveeeedddd fields.
RRRREEEESSSSEEEENNNNTTTT MMMMEEEESSSSSSSSAAAAGGGGEEEESSSS
A message is _r_e_s_e_n_t if it contains any of the following
fields: RRRReeeesssseeeennnntttt----SSSSeeeennnnddddeeeerrrr, RRRReeeesssseeeennnntttt----FFFFrrrroooommmm, RRRReeeesssseeeennnntttt----RRRReeeeppppllllyyyy----TTTToooo,
RRRReeeesssseeeennnntttt----TTTToooo, RRRReeeesssseeeennnntttt----CCCCcccc, RRRReeeesssseeeennnntttt----BBBBcccccccc, RRRReeeesssseeeennnntttt----DDDDaaaatttteeee, RRRReeeesssseeeennnntttt----
MMMMeeeessssssssaaaaggggeeee----IIIIDDDD.
If a message is resent, qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt changes its behavior as
follows.
It deletes any RRRReeeesssseeeennnntttt----BBBBcccccccc field (as well as any BBBBcccccccc field);
if there are no RRRReeeesssseeeennnntttt----TTTToooo or RRRReeeesssseeeennnntttt----CCCCcccc fields, qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt
adds an appropriate RRRReeeesssseeeennnntttt----CCCCcccc line. It does _n_o_t add a CCCCcccc
line, even if neither TTTToooo nor CCCCcccc is present.
If there is no RRRReeeesssseeeennnntttt----FFFFrrrroooommmm field, qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt adds a new
RRRReeeesssseeeennnntttt----FFFFrrrroooommmm field. It does _n_o_t add a new FFFFrrrroooommmm field.
qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt adds RRRReeeesssseeeennnntttt----DDDDaaaatttteeee if one is not already present;
same for RRRReeeesssseeeennnntttt----MMMMeeeessssssssaaaaggggeeee----IIIIdddd. It does _n_o_t add new DDDDaaaatttteeee or
MMMMeeeessssssssaaaaggggeeee----IIIIdddd fields.
OOOOTTTTHHHHEEEERRRR FFFFEEEEAAAATTTTUUUURRRREEEESSSS
Addresses are separated by commas, not spaces. When qqqqmmmmaaaaiiiillll----
iiiinnnnjjjjeeeecccctttt sees an illegal space, it inserts a comma:
djb fred -> djb, fred
qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt removes all RRRReeeettttuuuurrrrnnnn----PPPPaaaatttthhhh header fields.
qqqqmmmmaaaaiiiillll----iiiinnnnjjjjeeeecccctttt also removes any CCCCoooonnnntttteeeennnntttt----LLLLeeeennnnggggtttthhhh fields.
SunOS 5.11 Last change: 3
Standards, Environments, and Macros qmail-header(5)
SSSSEEEEEEEE AAAALLLLSSSSOOOO
addresses(5), envelopes(5), qmail-inject(8)
SunOS 5.11 Last change: 4