of a mail message determines its ability to be sent
despite a high machine load
and its position in the queue when the queue is processed.
Each mail message has a priority and a cost.
The initial priority (class) of a mail message is defined by the optional
presence of a
Precedence: header line inside the message
with a symbol corresponding to a value defined by
P configuration command.
For example, if your sendmail.cf file contained this line:
and your mail message header contained this line:
then your mail message would begin its life with a class of 100. We'll cover how this is done soon.
After the message's initial class value is set, that value
is never changed. As soon as the class is determined, the
initial cost is calculated. This cost
is the value that is used to determine if a message will be sent
despite a high machine load (defined by the
X) option, see Section 34.8.54, RefuseLA (X),
x) option, see Section 34.8.50, QueueLA (x))
and to determine its order in queue processing.
The formula for the initial calculation is the following:
cost = nbytes - (class * z) + (recipients * y)
nbytes is the total size in bytes of the message,
recipients is either the number of recipients in the envelope
-t) the number of recipients specified
Bcc: header lines
(after alias expansion),
y are the values of the
z) option (see Section 34.8.8, ClassFactor (z))
y) option (see Section 34.8.53, RecipientFactor (y)).
Precedence: header should rarely be declared in the configuration
file. Instead, it is added to messages by MUAs and by mailing-list
software. If it is declared in the configuration file, it should
be prefixed with an appropriate
? (see Section 35.4)
so that it is inserted only for an appropriate delivery agent.
string is text, such as
P and the
(including any whitespace) is taken as is for
value is evaluated as a signed integer and may be
decimal, octal (with a leading 0), or hexadecimal (with a leading 0x).
Although you may define any
string you choose, only five
have any universal meaning. Those five usually appear in sendmail.cf
files like this:
Pspecial-delivery=100 Pfirst-class=0 Plist=-30 Pjunk=-60 Pbulk=-200
You may, of course, define your own precedence strings for internal mail, but they will be ignored (evaluate to 0) by all outside sendmail programs.
bulk are also recognized by
many other programs. Newer versions of the
vacation(1) program, for example, silently skip replying
to messages that have a
Precedence: header line of
As a general rule,
special-delivery is rarely used. Most
mail has a class of
first-class. Mailing lists
should always have a class of
Because your local sendmail.cf file is where values are given to these class names, you are free to modify those values locally. The values affect only the delivery at your site.