qmail-header - format of a mail message

          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

          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: (D. J. Bernstein)
               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

               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.

          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  ->

          It appends the plus domain name to any name that ends with a
          plus sign:

               eric@mammoth.cs+  ->

          A host name may be a dotted-decimal address:


          RFC 822 allows mailbox names inside angle brackets to
          include source routes, but qmail-inject strips all source
          routes out of 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-

          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

          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.

          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.

          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-

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

          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.

          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.

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

Man(1) output converted with man2html