Provided by: qmail_1.06-5_amd64 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)