The
Message-ID: header is used to uniquely identify
each mail message. This header must be declared in the configuration
file. The field for this header must be an expression in the syntax
of a legal address enclosed in angle brackets
(< and >). The address
must be composed of elements that create an identifier that is truly
unique worldwide. The Message-ID: header is
declared in the configuration file:
?M?Message-Id: <$t.$i@$j>
Here, the field is an address of the form
identifier@domain, which is enclosed in
angle brackets. The $t macro ($t) is an integer representation of the current
time to the nearest second. The $i macro ($i) is the unique queue identifier that is used
to identify this message locally. The $j macro
($j) is the fully qualified domain name of
the local host. The Message-ID: header as it might
appear in an actual mail message would look like this:
Message-Id: <200210141542.g9EFg2bb006638@nic.cerf.net>
The Message-ID: header should be prefixed with a
?M? flag so that it is inserted only into headers
of messages whose delivery agents have the F=M
flag set. The standard delivery agents include this flag.
The resent- form of the
Message-ID: header must also be declared in the
configuration file:
?M?Resent-Message-Id: <$t.$i@$j>
This ensures that every mail message has a message identifier even if
the message is forwarded.
Note that sendmail does not add a
Message-ID: header or its
Resent- form if a Message-ID:
header already exists in the header portion of a mail message.
Furthermore, the Resent- form is added only if
sendmail determines that the message is a
re-sent message.
Also note that you should never try to replace an existing
Message-ID: header with one of your own. This
could result in the loss of important information needed to trace the
origin of a message.