deliver -- manage MMDF mail delivery


/usr/mmdf/bin/deliver [ -bdpsw ] [ -cchan,chan ] [ -lmins ] [ -thrs ]
[ -mmaxsort] [ -Llogfile ] [ -Tsecs ]
[ -Vloglevel ] [ message1 ... messageN ]


The deliver program handles the management of all mail delivery under the MMDF mail system. deliver does not deliver mail directly, but instead calls on MMDF channel programs to handle actual delivery. deliver's actions are guided by the MMDF configuration file, /usr/mmdf/mmdftailor, and by the command line options. The program can run as either a daemon or a user-invoked program. The program may be called to process the entire mail queue or just handle some explicitly named messages. When possible, deliver attempts to process messages in the order received. deliver also maintains a cache of host information on a per-channel basis, which allows hosts that are unavailable for delivery to be skipped until available.

deliver first builds a list of channels to process, using either the list from the command line or all the non-passive channels in the system. Next, a list of messages to process is collected, either from the command line or by scanning the mail queue for each channel. If the number of messages in the queue for a given channel is more than maxsort as specified on the command line (or using the MMAXSORT parameter in the mmdftailor file), the queue directory for that channel is processed in the order read, without sorting by submission time. If a list of messages is given on the command line, no sorting takes place and the messages are delivered in the order specified. The sorting keys are (in order): channel, submission time, and finally host. This causes many accesses to the messages but minimizes the invocation of channel programs.

deliver is setuid to root to allow it to set its real and effective UID and GID to that of the MMDF user.

The following options may be used to alter deliver's behavior:

Background mode. Causes deliver to run as a background daemon making periodic sweeps over the mail queues looking for undelivered mail and attempting delivery. The invoker must be mmdf or root to use this option. deliver attempts delivery for all eligible messages, then sleeps, and then repeats the process. The default sleep time is 10 minutes but can be changed using the -T option.

-cchannel1,channel2, ...
Channel selection. A comma-separated list of channels to be processed.

Already in ``quedfldir''. This option will cause deliver to assume it is already in the mail queue and therefore it will not issue an explicit chdir. This is useful if you wish to have deliver operate on an alternate mail queue hierarchy, mainly for testing.

Sets the ``time-to-live'' for entries in the dead-host cache. This time defaults to 2 hours. The dead-host cache is used to prevent attempts to deliver to hosts that are known to be down. The ``time-to-live'' is given in minutes. If the number of minutes is negative, dead-host caching is disabled.

Sets the sort threshold. If there are more than maxsort messages in a given channel's queue, then they are processed in directory order without first sorting by submission time. If -m is not specified, the value of maxsort is given in the mmdftailor file by MMAXSORT.

Pickup-only mode. Indicates that the invoker would like to pick up a passive mail channel.

Force linear search of the mail queue. Normally deliver delivers messages in the order they were received, which seldom matches the order in the directory. This option is useful if the queue gets so large that deliver can no longer deal with sorting the queue in a reasonable time.

Time limiting. This option prevents deliver from attempting to deliver messages that have been in the queue for more than hrs hours. For efficiency reasons, this option only applies when the queue is being sorted. If an explicit list of messages was given on the command line, if the -s option is in effect, or there are more messages than the maxsort threshold (see the -m option), then time limiting does not occur.

Watch the delivery. Causes deliver to print informative messages on the standard output as it is attempting delivery. This option is passed onto the channel programs which also give informative messages.

Sets the logfile for this deliver process to the file specified. The default is to write log entries into the file msg.log in the MMDF log directory (specified by MLOGDIR in the mmdftailor file). This option is only available to the root and mmdf users. The logfile must already exist and must be writable by mmdf.

Sets the sleep time in seconds between background sweeps of the mail queue. This defaults to 600 seconds (10 minutes).

Sets the logging level for this deliver process to the level specified. The loglevel should be a valid MMDF logging level string such as FTR. See the discussion of the MCHANLOG parameter in mmdftailor(F) for a list of level strings. This option is only available to the root and mmdf users.

See also

mmdftailor(F), queue(F), submit(ADM)

Standards conformance

MMDF is not part of any currently supported standard; it was developed at the University of Delaware and is used with permission.

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003