home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


sendmailSearch this book
Previous: 35.5 Header Behavior in conf.c Chapter 35
Next: 35.7 Forwarding with Resent-Headers

35.6 Headers by Category

The sendmail program contains an internal list of header name s that are organized conceptually into categories. The names and categories are defined in conf.c (see Section 35.5, "Header Behavior in conf.c" ). Each category is defined by one or more H_ flags in that file, the names of which are listed under the Flags column of all the tables that follow.

35.6.1 Recommended Headers

Every sendmail.cf file should have a minimal complement of header definitions. Below we present a recommendation. Don't use this as is. The details are not generic to all versions of sendmail , nor are they appropriate for all sites.

H?P?Return-Path: $g
HReceived: $?sfrom $s $.by $j ($v/$V) id $i; $b
<- mandatory

H?D?Date: $a
<- mandatory

H?F?From: $q
<- mandatory

H?x?Full-Name: $x
H?M?Message-Id: <$t.$i@$j>
<- mandatory

H?D?Resent-Date: $a
<- mandatory

H?F?Resent-From: $q
<- mandatory

H?M?Resent-Message-Id: <$t.$i@$j>
<- mandatory

Each of these is described individually at the end of this chapter. Except for Received: (see Section 35.10.25 ), none is added to any mail message that already has that particular header present.

The Return-Path: header (see Section 35.10.28 ) is added only if it is not already present and if the delivery agent for the recipient has the F=P flag present. Similarly, the Date: relies on F=D , the From: relies on F=F , the Full-Name: relies on F=x , and the Message=Id: relies on F=M .

Of those shown, only the seven indicated are truly mandatory and must be declared in every configuration file. The others are highly recommended.

35.6.2 Sender Headers

Certain header name s are assumed by sendmail to contain information about the various possible senders of a mail message. They are listed in Table 35.3 in descending order of significance. Addresses with the H_FROM flag (see Section 35.5.9 ) are rewritten as sender addresses.

Table 35.3: Sender Headers (Most to Least Significant)
Header Flags Defined by
Resent-Sender: Section 35.7, "Forwarding with Resent-Headers" H_FROM, H_RESENT RFC822
Resent-From: Section 35.10.14, From: H_FROM, H_RESENT RFC822
Resent-Reply-To: Section 35.7 H_FROM, H_RESENT RFC822
Sender: Section 35.10.30, Sender: H_FROM RFC822
From: Section 35.10.14 H_FROM RFC822
Apparently-From: Section 35.10.1, Apparently-From: n/a Smail 3.0
Reply-To: Section 35.10.27, Reply-To: H_FROM RFC822
Full-Name: Section 35.10.15, Full-Name: H_ACHECK obsolete
Return-Receipt-To: Section 35.10.29, Return-Receipt-To: H_FROM obsolete
Errors-To: Section 35.10.13, Errors-To: H_FROM, H_ERRSTO sendmail

When returning bounced mail, sendmail always uses the envelope sender's address. If the special header Errors-To: appears in the message, a copy of the bounced mail is also sent to the address in that header. This is hard-coded into all but SunOS and V8 sendmail , which use the H_ERRSTO header flag (see Section 35.5.11 ) instead. V8 also requires that the UseErrorsTo ( l ) option (see Section 34.8.74 ) be set to true for the Errors-To: header to be honored.

35.6.3 Recipient Headers

Recipient headers are those from which one or more recipients can be parsed. Addresses in headers with the H_RCPT flag (see Section 35.5.2 ) are rewritten as recipient addresses. When they are invoked with the -t command-line switch, sendmail gathers a list of recipients from all the headers marked with an H_RCPT flag and delivers a copy of the message to each.

The list of recipient headers used by sendmail is shown in Table 35.4 .

Table 35.4: Recipient Headers
Header Flags Defined by
To: Section 35.10.33, To: H_RCPT RFC822
Resent-To: Section 35.7 H_RCPT, H_RESENT RFC822
Cc: Section 35.10.5, Cc: H_RCPT RFC822
Resent-Cc: Section 35.7 H_RCPT, H_RESENT RFC822
Bcc: Section 35.10.4 H_RCPT, H_ACHECK RFC822
Resent-Bcc: Section 35.7 H_RCPT, H_ACHECK, H_RESENT RFC822
Apparently-To: Section 35.10.2, Apparently-To: H_RCPT Obsolete

35.6.4 Identification and Control Headers

Some headers serve to uniquely identify a mail message. Others affect the way sendmail processes a mail message. The complete list of all such identification and control headers is shown in Table 35.5 .

Table 35.5: Identification and Control Headers
Header Flags Defined by
Message-ID: Section 35.10.19 n/a RFC822
Resent-message-Id: Section 35.7 H_RESENT RFC822
Message: Section 35.10.20, Message: H_EOH Obsolete
Text: Section 35.10.32, Text: H_EOH Obsolete
Precedence: Section 35.8, "Precedence" n/a All sendmails
Priority: Section 35.10.24, Priority: n/a V8.7 and above

Note that the Precedence: and Posted-Date: (below) headers are hard-coded into sendmail rather than being declared in conf.c .

35.6.5 Date and Trace Headers

Date headers are used to document the date and time that the mail message was sent or forwarded. Trace headers (those with an H_TRACE header flag; see Section 35.5.8 ) are used to determine the hop count of a mail message and to document the message's travel from machine to machine. The list date and trace headers is shown in Table 35.6 .

Table 35.6: Date and Trace Headers
Header Flags Defined by
Date: Section 35.10.10, Date: n/a RFC822
Posted-Date: Section 35.10.22, Posted-Date: n/a Obsolete
Resent-Date: Section 35.7 H_RESENT RFC822
Received: Section 35.10.25 H_TRACE, H_FORCE RFC822
Via: Section 35.10.34, Via: H_TRACE, H_FORCE Obsolete
Mail-From: Section 35.10.18, Mail-From: H_TRACE, H_FORCE Obsolete
X-Authentication-Warning: Section 35.10.35, X-Authentication-Warning: n/a V8 sendmail
X400-Received: Section 35.10.36, X400-Received: H_TRACE IDA and V8 only

35.6.6 Other RFC822 Headers

Other headers that you will see in mail messages are defined by the RFC822 standard but are not otherwise internally defined by sendmail . A few of them, such as Return-Path: , should be declared in the configuration file. The others are usually inserted by MUAs. Table 35.7 lists these other RFC822 headers.

Table 35.7: Other RFC822 Headers
Header Flags Defined by
Return-Path: Section 35.10.28 n/a RFC822
In-Reply-To: Section 35.10.16, In-Reply-To: n/a RFC822
References: Section 35.10.26, References: n/a RFC822
Keywords: Section 35.10.17, Keywords: n/a RFC822
Subject: Section 35.10.31 n/a RFC822
Comments: Section 35.10.6, Comments: H_FORCE RFC822
Encrypted: Section 35.10.12, Encrypted: n/a RFC822

35.6.7 MIME Headers

MIME (Multipurpose Internet Mail Extensions) is documented in RFC1521, with additional details in RFC1344, RFC1426, RFC1428, and RFC1437. The sendmail program cares about MIME only when bouncing messages and when determining how to convert the message body between 8 and 7 bits. Those MIME headers for which sendmail contains special knowledge are shown in Table 35.8 .

Table 35.8: MIME Headers
Header Flags Defined By
MIME-Version: Section 35.10.21, MIME-Version: n/a RFC1521
Content-Type: Section 35.10.9 H_CTYPE RFC1521
Content-Transfer-Encoding: Section 35.10.8 H_CTE RFC1521

Previous: 35.5 Header Behavior in conf.c sendmail Next: 35.7 Forwarding with Resent-Headers
35.5 Header Behavior in conf.c Book Index 35.7 Forwarding with Resent-Headers