Provided by: qmail_1.06-4_i386 bug

NAME

       qmail-header - format of a mail message

OVERVIEW

       At  the  top of every mail message is a highly structured header.  Many
       programs expect the header to carry certain information,  as  described
       below.   The  main  function  of qmail-inject is to make sure that each
       outgoing message has an appropriate header.

       For          more          detailed          information,           see
       http://pobox.com/~djb/proto/immhf.html.

MESSAGE STRUCTURE

       A message contains a series of header fields, a blank line, and a body:

            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 name, a colon, some contents, 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.  qmail-inject does not allow field names
       with unprintable characters.

       Case is irrelevant in field names: subject and SUBJECT and SuBjEcT have
       the same meaning.

ADDRESS LISTS

       Certain fields, such as To, contain address lists.

       An  address  list  contains some number of addresses or address groups,
       separated by commas:

            a@b, c@d (Somebody), A Person <e@f>,
               random group: g@h, i@j;, k@l

       An address group 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
       box@host.

       Every address must include a host name.  If qmail-inject  sees  a  lone
       box name it adds the default host name.

       All  host  names  should  be fully qualified.  qmail-inject appends the
       default domain name to any name without dots:

            djb@silverton  ->  djb@silverton.berkeley.edu

       It appends the plus domain name 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  source
       routes, but qmail-inject strips all source routes out of addresses.

SENDER ADDRESSES

       qmail-inject  looks  for  sender address lists in the following fields:
       Sender,  From,  Reply-To,  Return-Path,  Return-Receipt-To,  Errors-To,
       Resent-Sender, Resent-From, Resent-Reply-To.

       If  there is no From field, qmail-inject adds a new From field with the
       name of the user invoking qmail-inject.

       RFC 822 requires that certain  sender  fields  contain  only  a  single
       address, but qmail-inject does not enforce this restriction.

RECIPIENT ADDRESSES

       qmail-inject looks for recipient address lists in the following fields:
       To, Cc, Bcc, Apparently-To, Resent-To, Resent-Cc, Resent-Bcc.

       Every message must contain at least one To or Cc or Bcc.   qmail-inject
       deletes  any  Bcc  field.   If there is no To or Cc field, qmail-inject
       adds a line

            Cc: recipient list not shown: ;

       This complies with RFC 822; it also works around some strange  sendmail
       behavior,  in  case  the  message is passed through sendmail on another
       machine.

STAMPS

       Every message must contain a Date field, with  the  date  in  a  strict
       format  defined  by  RFC  822.  If necessary qmail-inject creates a new
       Date field with the current date (in GMT).

       Every message should contain a Message-Id field.   The  field  contents
       are  a  unique  worldwide  identifier  for  this message.  If necessary
       qmail-inject creates a new Message-Id field.

       Another important field is Received.  Every time the  message  is  sent
       from one system to another, a new Received field is added to the top of
       the message.  qmail-inject does not create any Received fields.

RESENT MESSAGES

       A message is resent if it contains any of the following fields: Resent-
       Sender, Resent-From, Resent-Reply-To, Resent-To, Resent-Cc, Resent-Bcc,
       Resent-Date, Resent-Message-ID.

       If a message is resent, qmail-inject changes its behavior as follows.

       It deletes any Resent-Bcc field (as well as any Bcc  field);  if  there
       are  no Resent-To or Resent-Cc fields, qmail-inject adds an appropriate
       Resent-Cc line.  It does not add a Cc line, even if neither To  nor  Cc
       is present.

       If  there  is no Resent-From field, qmail-inject adds a new Resent-From
       field.  It does not add a new From field.

       qmail-inject adds Resent-Date if one is not already present;  same  for
       Resent-Message-Id.  It does not add new Date or Message-Id fields.

OTHER FEATURES

       Addresses  are separated by commas, not spaces.  When qmail-inject sees
       an illegal space, it inserts a comma:

            djb fred  ->  djb, fred

       qmail-inject removes all Return-Path header fields.

       qmail-inject also removes any Content-Length fields.

SEE ALSO

       addresses(5), envelopes(5), qmail-inject(8)

                                                               qmail-header(5)