Managing mail with MMDF

Customizing mail delivery

The deliver(ADM) program manages mail delivery under MMDF. To customize deliver processes, edit the MMDF system startup file, /etc/rc2.d/S86mmdf, while logged in as root. You can:

Changing the deliver interval

To change the interval between deliver processes from the default of every 10 minutes, add the -T option to the command line in /etc/rc2.d/S86mmdf. For example, set up your system so that deliver runs every 60 seconds using this deliver startup line:

/bin/su mmdf -c "/usr/mmdf/bin/deliver -b -T60"

NOTE: When you start deliver with the -b option only, one deliver process manages all configured channels. The deliver daemon periodically checks each channel's queue for mail to deliver. This is known as ``sweeping the queues''.

Running multiple deliver processes

When you have a single deliver(ADM) program managing a number of channels, deliver goes through the channels individually and tries to deliver all the messages in a channel's queue before going on to the next channel. You can instead configure your system to start multiple deliver programs, each servicing a single channel. In this case, the deliver daemons work in parallel. This is a desirable configuration for a mail gateway machine because it increases the overall mail bandwidth of the machine.

NOTE: For each deliver process that you initiate, system overhead increases.

To start separate deliver processes to manage each channel, add deliver startup lines for each channel to the /etc/rc2.d/S86mmdf file. Use the deliver -c option to specify each channel. For example, to create separate deliver processes for local, UUCP, Micnet, and SMTP channels, put these lines in S86mmdf:

   /bin/su mmdf -c "/usr/mmdf/bin/deliver -b -clocal"
   /bin/su mmdf -c "/usr/mmdf/bin/deliver -b -cuucp"
   /bin/su mmdf -c "/usr/mmdf/bin/deliver -b -cmicnet"
   /bin/su mmdf -c "/usr/mmdf/bin/deliver -b -csmtp"
If you have a significant amount of mail traffic on a single channel, you can start more than one deliver process on that channel by adding more than one deliver startup line for the channel. For example, to start three deliver processes to sweep the queue for the SMTP channel, add these lines:
   /bin/su mmdf -c "/usr/mmdf/bin/deliver -b -csmtp"
   /bin/su mmdf -c "/usr/mmdf/bin/deliver -b -csmtp"
   /bin/su mmdf -c "/usr/mmdf/bin/deliver -b -csmtp"
Keep in mind that each deliver process that you start increases the load on the system.

Specifying different time intervals for deliver

The MSLEEP parameter in the mmdftailor(F) file determines the default time interval for the deliver daemon to sweep through the queues for all the channels. The default setting for MSLEEP is 600, meaning that deliver sweeps the queues every 600 seconds, or 10 minutes. We recommend that you set up deliver to run every 60 seconds. To use this interval for all the channels, change the value of MSLEEP in mmdftailor to 60.

If you create a separate deliver daemon for each channel, you can set up a different time interval for each deliver process by by adding the -T option to each deliver startup line in /etc/rc2.d/S86mmdf. For example, to run deliver on the local channel every 30 seconds and on the UUCP channel every 5 minutes, put these lines in S86mmdf:

   /bin/su mmdf -c "/usr/mmdf/bin/deliver -b -clocal -T30"
   /bin/su mmdf -c "/usr/mmdf/bin/deliver -b -cuucp -T300"

The deliver program

The deliver(ADM) program manages message delivery under MMDF by moving mail from the queue to the appropriate channel. To do this, deliver:

  1. determines the list of channels to process. You can specify the exact list on the deliver command line. The default is to process all nonpassive channels.

  2. determines which messages to process. You can specify the exact list on the deliver command line. The default is to process all messages in the queue for each channel.

  3. sorts the messages in order of channel, submission time, and (optionally) host. The message list is not sorted (processed in order read) if it is specified on the command line or if the number of messages exceeds MAXSORT, as specified in the mmdftailor file.

The submit program

The submit(ADM) program determines the destination of a message, designates the channel to use to deliver the mail, and places the message in the appropriate channel queue. To do this, submit:

  1. accepts incoming mail from a channel.

  2. uses the message's ``To:'' header, command-line syntax, and the MMDF configuration files to build the fully qualified domain name for the destination host.

  3. uses the fully qualified domain name to determine the appropriate channel through which to send the message, and places the message in the appropriate channel queue.

Specifying uux routing options for UUCP

The uux(C) program can be used to send files between machines over UUCP or to execute commands remotely. If you use UUCP to route mail, you can specify the options to be used when sending files and executing commands on the remote machine. By default, MMDF uses these options to uux:

   uux - -r
This setting specifies that UUCP queue the job until the next time uucico(ADM) (the UUCP file transport program) runs rather than transfer it immediately.

To change this, use a text editor to add a UUXSTR parameter to (/usr/mmdf/mmdftailor). For example, if you want uucico to run immediately, add this line:

   UUXSTR "uux -"
In general, we recommend that you use one of these UUXSTR settings:

UUXSTR setting Describes
UUXSTR "uux -" Run uucico immediately
UUXSTR "uux - -r" Queue job until uucico next runs
UUXSTR "uux - -gA" Run uucico now and transmit job early in session
UUXSTR "uux - -r -gA" Queue job, then transmit early in next uucico session

See also:

Next topic: Specifying the MMDF ``signature''
Previous topic: Referencing addresses maintained in a file

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