When a single email message is sent to many recipients (those on a
mailing list, for example), a single sendmail
process handles all the recipients. Should that
sendmail process die or be killed halfway
through processing, there is no record that the first half was
delivered. As a result, when the queue is later reprocessed, the
recipients in that first half will receive the message a second time.
The FastSplit option (FastSplit) and this
CheckpointInterval option can limit that
duplication. The CheckpointInterval option tells
sendmail to rewrite (checkpoint) its
qf file (which contains the list of recipients,
Section 11.2.5) after each group of a specified number
of recipients has been delivered. Recipients who have already
received mail are deleted from the list, and that list is rewritten
to the qf file. The forms of the
CheckpointInterval option are as follows:
O CheckpointInterval=num configuration file (V8.7 and later)
-OCheckpointInterval=num command line (V8.7 and later)
define(`confCHECKPOINT_INTERVAL','num') mc configuration (V8.7 and later)
OCnum configuration file (deprecated)
-oCnum command line (deprecated)
The num argument is of type
numeric and specifies the number of recipients
in each group. If num is entirely missing,
is nonnumeric, or is zero, this feature is disabled. If the entire
CheckpointInterval option is missing, the default
is 10. There is a small performance penalty that increases as
num approaches 1. A good starting value is 4,
meaning that at most four people will get duplicate deliveries. Note
that the F=m flag on local delivery will try as
many recipients as possible before checkpointing, even if that number
is greater than the value of this
CheckpointInterval option.
The CheckpointInterval option is safe. Even if it
is specified from the command line, sendmail
retains its special privileges.