If the mode argument is missing, this option defaults to the i or interactive mode. If the entire DeliveryMode option is missing, V8 sendmail defaults to background mode, but old sendmail behaves unpredictably; consequently, this option should be considered mandatory. The default for the mc configuration is also background. If the mode character is anything other than the first lowercase letter of one of the keywords shown in Table 24-16, sendmail will print and log the following error and will immediately exit with an exit value of EX_USAGE as defined in <sysexits.h>: Unknown delivery mode char
Prior to V8.12, queue-only and deferred modes were available only if QUEUE was defined when sendmail was compiled (QUEUE). If QUEUE was not defined and one of these two modes was selected, sendmail would print and log the following: need QUEUE to set -odqueue or -oddefer Beginning with V8.12, the QUEUE Build macro has been removed, and the various queue-related modes are always available. The DeliveryMode option is safe. Even if it is specified from the command line, sendmail retains its special privileges. DeliveryMode=backgroundBackground mode—intended primarily[20] for use in the configuration file—allows sendmail to run asynchronously. This means that once sendmail has gathered the entire message and verified that the recipient is deliverable, it will fork(3) a copy of itself and exit. The copy, running in the background (asynchronously), will then handle the delivery. From the user's point of view, this mode allows the mail interface program to act as though it sent the message nearly instantaneously.
DeliveryMode=deferredDeferred mode—for use in either the command line or the configuration file—is much like queue-only mode except that all database lookups, including DNS, are deferred until the actual queue run. Deferred mode (V8.7 and later) is preferred for dial-on-demand sites (typically, modem-based SL/IP or PPP connections). Just as in queue-only mode, all mail is queued for later delivery, but with deferred mode, code inside sendmail that would ordinarily interact with DNS is suppressed. This prevents the modem from being dialed and connections from being established every time mail is queued. See also the -D database-map switch (-D), and the DialDelay option (DialDelay). DeliveryMode=interactiveInteractive mode—intended for use from the command line—causes sendmail to run synchronously. This mode is useful primarily for debugging mail problems. Instead of going into the background with fork(3), it runs in the foreground (synchronously). In this mode, error messages are printed back to the controlling terminal rather than being mailed to the user as bounced mail. The -v command-line switch (-v) automatically sets the mode to interactive. DeliveryMode=queueonlyQueue-only mode—for use in either the command line or the configuration file—causes sendmail to synchronously queue mail. Queue-only mode is useful at sites that have huge amounts of UUCP mail or Usenet news batch feeds, or when delivering to low-priority addresses such as mailing lists. Queuing has the beneficial effect of serializing delivery through queue runs, and it reduces the load on a machine that many parallel backgrounded sendmail processes can cause. Queue-only mode is typically supplied as a command-line option to sendmail by the uuxqt(8) program. When queue-only mode is selected, all mail is queued for delivery, and none is actually delivered. A separate run of sendmail with its -q command-line switch (Section 11.8.1) is needed to actually process the queue. Note that addresses can still be looked up with DNS as a part of the queueing process. Consequently, queue-only mode is probably not suitable for dial-on-demand sites. |