mmdftailor(F) 06 January 1993 mmdftailor(F) Name mmdftailor - provide run-time tailoring for the MMDF mail router Description The MMDF mail router reads site-dependent information from the ASCII file /usr/mmdf/mmdftailor each time it starts up. Keywords in the tailor file are not case-sensitive; however, case is important for filenames and similar values. Use quotation marks to de- limit strings to prevent them from being parsed into separate words accidentally. The following alphabetical list describes most of the information you can set in the mmdftailor file. For information about additional channel- specific settings, refer to the documentation about the particular chan- nel. ALIAS defines an alias table. The following parameters can be used: table specifies the name of the table to be associated with this alias entry trusted allows the entries in the table to cause delivery to files and pipes nobypass does not allow the ~address alias bypass mecha- nism to work on this file Here is an example: ALIAS table=sysaliases, trusted, nobypass AUTHLOG controls authorization information. See MCHANLOG and MLOG- DIR. AUTHREQUEST is the address to which users should mail if they have questions about why a message was not authorized for delivery. It is also used as the sender of authorization warning messages. It is not used if authorization is not enabled on some channel. See the auth parameter under MCHN. MADDID controls whether submit adds Message-ID: header lines if they are missing from messages. It takes a number as an argument. If the number is 0, no action is taken. If the number is non-zero, then submit adds Message-ID: header lines if they are missing from messages. MADDRQ is the address files directory. If it is not a full path- name, it is taken relative to MQUEDIR. MCHANLOG controls MMDF logging, except for authorization information and information produced by deliver and submit. See also MMSGLOG, AUTHLOG, and MLOGDIR. Logging files and levels can also be specified in the chan- nel descriptions. The logging file, if specified there, overrides the MCHANLOG definition. The logging level for the channel is set to the maximum of the MCHANLOG level and the channel description's level. The MCHANLOG level can therefore be used to increase logging on all channels at once. Here is an example: MCHANLOG /tmp/mmdfchan.log, level=FST, size=40, stat=SOME An argument without an equal sign is taken as the name of the log. Logging levels are: FAT logs fatal errors only TMP logs temporary errors and fatal errors GEN saves the generally interesting diagnostics BST shows some basic statistics FST gives full statistics PTR shows a program trace listing of what is happening BTR shows more detailed tracing FTR saves every possible diagnostic The size parameter is the number of 25-block units you will allow your log file to grow to. When a log file reaches that size, that logging either stops or cycles around overwriting old data (see cycle). The stat parameter sets up various status flags for log- ging: close closes the log after each entry; this allows other processes to write to it as well. wait if the log is busy, waits a while for it to free. cycle if the log is at the maximum length specified with the size parameter, then cycles to the beginning. some sets the values close and wait (the most common setting). timed opens the log and, after the timeout period (for example, 5 minutes), closes the log and reopens it; this option overrides all other options (used to reduce the overhead of re-opening the log for every entry while still retaining the ability to move the log file out from under a running process and have the process begin logging in the new log file soon thereafter). Tailoring of the log files is generally performed at the end of the tailor file to prevent logging the tailoring action itself, thereby needlessly filling the log files when higher tracing levels are enabled. If you have bugs in the tailoring, you can move the log-file tailoring closer to the top of the tailor file. MCHN defines a channel. The following parameters can be used: name the name of the channel. show a descriptive name used by certain programs as a display line to explain the function of the chan- nel. que the queue subdirectory of /usr/spool/mmdf/lock/home in which to queue messages for this channel; MMDF prefixes the name with q. to form the subdirectory name. tbl the abbreviated name (from MTBL) for the associated table that lists the hosts that are accessible on this channel. If the specified table has not been previously defined, it will be defined with the same name, file, and show parameters as for this channel (do not define two channels that process the same queue, but use different tables because it will cause queue structure problems). pgm the channel program (in /usr/mmdf/chans) to invoke for this channel. This program takes mail from deliver(ADM) and carries it to its destination on the local machine or across the network to a remote machine. mod the delivery mode for the channel; if several values are selected, they are cumulative: reg regular mode (the default). This mode queues mail, but does not send it; you must run deliver (manually, with cron(C), or as a background program) to actually send mail through the regulated channel. host same as reg, but specifies that deliver sort by host after sorting by channel, which allows as many mail messages as pos- sible to get sent to a particular host before the connection is broken. bak channel can be invoked only by the back- ground deliver daemon. psv channel is passive; it is a pickup-type channel (for example, pobox). imm channel can be invoked immediately; no need to batch up mail. pick channel can pick up mail from the remote host. send channel can send mail to the remote host. ap the type of address parsing to use for reformatting headers on messages going out on this channel; if several values are selected, they are cumulative: same does not reformat headers 822 converts to RFC822-style source routes (for example, @A:B@C) 733 converts to RFC733-style source routes (for example, B%C@A). nodots selects output of leftmost part of domain names (for example, A in A.B.C) for sites that cannot handle domains (usually used in conjunction with the known= parameter to hide domain names behind a smart relay). lname a name overriding the default MLNAME value for this channel (used when the channel should have non- standard values for the local domain). ldomain a name overriding the default MLDOMAIN value for this channel. host the name of the host that is being contacted by this channel, usually used in the phone and pobox channels, or the name of the relay host when all mail to hosts in this channel's table gets relayed to one host (this is required on the badusers and badhosts pseudo-channels; it must be set to the local host for the list channel). poll the frequency of polling the remote machine (0 dis- ables polling, -1 requests polling to be done every time the channel is started up, any other value is the number of 15-minute intervals to wait between polls); if any mail is waiting to be sent, this value is ignored because a connection is always attempted. insrc a table of hosts controlling message flow. outsrc see insrc indest see insrc outdest see insrc known a table of hosts that are known on this channel; be sure that the table contains your own fully speci- fied host name. confstr a channel-specific configuration string. See the individual manual pages for the channel for more information. auth specifies the authorization tests that are made on this channel: free default, no checking takes place inlog log information for incoming messages outlog log information for outgoing messages inwarn warn sender of incoming message if authori- zation is inadequate (the message still goes through) outwarn as inwarn, but for outgoing messages inblock reject incoming messages that have inade- quate authorization outblock as inblock, but for outgoing messages hau host and user authorizations are required dho (direct host only) when applying host con- trols, the message must be associated with a user local to that host (that is, no source routes) ttl (time-to-live) specifies the number of minutes for which retries to a host are blocked when deliver detects a connection failure to that host; this value can be overridden on the deliver command line (default is 2 hours) log the name of the channel log file to be used instead of the default MCHANLOG level the logging level for this channel (see also MCHAN- LOG) Here is a simple example: MCHN name=local, que=local, tbl=local, show="Local Delivery", pgm=local, poll=0, mod=imm, ap=822, level=BST If the first argument does not have an equal sign, the values of the name, que, tbl, pgm, and show parameters take on this value. MCHNDIR is where the channel programs are to be found. MCMDDIR is the default commands directory where the various MMDF commands are located. Any command that does not have a full pathname is taken relative to this directory. MDBM tells MMDF where to find the database file containing the associative store. DBM-style databases get their speed and flexibility by performing dynamic hashing on an associative store. This can get quite large. By default, the file is located in the MTBLDIR directory, but it might need to be relocated due to its size. MDFLCHAN sets the default channel to something other than local. MDLV is the name of the file used for tailoring the delivery for each user. MDLVRDIR is the directory in which to deliver mail. If this is null, then the user's home directory is used. See also MMBXNAME and MMBXPROT. MDMN defines a domain. The following parameters can be used: name an abbreviated name for the domain show a display line, which is used for formatting pur- poses to explain what the domain is all about dmn the full name (x.y.z...) of this domain table the associated table entry of known sites in this domain; if the specified table has not been previ- ously defined, it will be defined with the same name, file, and show parameters as for this domain Here is an example: MDMN name="Root", dmn="", show="Root Domain", table=rootdomain If the first argument does not have an equal sign, the values of the name, dmn, and show parameters take on this value. If no table parameter is specified, it defaults to the value of the name parameter. MFAILTIME is the time a message can remain in a queue before a failed-mail message is sent to the sender and the message is purged from the queue. See also MWARNTIME. MLCKDIR is the directory where the locking of files takes place: this is dependent on what style of locking you are doing. MLCKTYPE specifies the locking protocol for MMDF to use when locking mailboxes. Use one or more of the following keywords with MLCKTYPE: _______________________________________________________ Keyword Lock file _______________________________________________________ advisory System V fcntl() kernel file locking v7 Version 7 and System V Release 3, and ear- lier file locking xenix XENIX file locking all all known locking protocols If you specify more than one locking keyword, all locks must be successful before MMDF considers the mailbox locked. Here is an example MLCKTYPE setting: MLCKTYPE advisory, xenix MLDOMAIN gives your full local domain (this, combined with the MLNAME, and possibly the MLOCMACHINE, gives the full net- work address). MLISTSIZE specifies the maximum number of addresses in a message before it is considered to have a ``big'' list. If there are more than the maximum number of addresses, then MMDF does not send a warning message for waiting mail and only returns a ``citation'' for failed mail. A citation con- sists of the entire header plus the first few lines of the message body. MLNAME is the name of your machine or site as you wish it to be known throughout the network, which can be a generic host name used to hide a number of local hosts. If it is a gen- eric host name, internal hosts are differentiated by MLOC- MACHINE. See also MLDOMAIN. MLOCMACHINE is the local name of the machine. It is used by a site that has several machines, but wants the machines them- selves to appear as one address. See also MLNAME and MLDOMAIN. MLOGDIR is the default directory in which the log files are kept. See also MMSGLOG, NAUTHLOG, and MCHANLOG. MLOGIN is the user who owns the MMDF transport system. MMAXHOPS specifies the maximum number of Received: or Via: lines in a message before it is considered to be looping and is rejected. MMAXSORT controls sorting of messages based on the number of mes- sages in the queue. If the number of messages in the queue is less then MMAXSORT, the messages are sorted by arrival time and are dispatched in that order; otherwise, a message is dispatched as it is found during the directory search. MMBXNAME is the name of the mailbox. If this is null, then the user's login name is used. See also MDLVRDIR and MMBXPROT. MMBXPREF is a string written before the message is written into the mailbox. It is usually set to a sequence of <Ctrl>A char- acters. The default MMBXPREF value looks like this: MMBXPREF "\001\001\001\001\n" See also MMBXSUFF. The values of MMBXPREF and MMBXSUFF should consist of non- printable characters only and must end in a newline. MMBXPROT gives the protection mode in octal for the user's mailbox. See also MDLVRDIR and MMBXNAME. MMBXSUFF is a string written after the message is written into the mailbox. It is usually set to a sequence of <Ctrl>A char- acters. The default MMBXSUFF value looks like this: MMBXSUFF "\001\001\001\001\n" See also MMBXPREF. MMSGLOG controls the logging information produced by deliver and submit. See also MCHANLOG, AUTHLOG, and MLOGDIR. MMSGQ is the directory for the files of message text. If it is not a full pathname, it is taken relative to MQUEDIR. MPHSDIR is the directory in which the timestamps for the channels are made, showing what phase of activity they are in. MQUEDIR is the parent directory for the various queues and address directories. MQUEPROT gives the protection mode in octal that the parent of the MQUEDIR directory should have. MSIG is the signature that MMDF uses when notifying senders of mail delivery problems. MSLEEP is the length of time in seconds that the background delivery daemon sleeps between queue scans. MSUPPORT is the address to which to send mail that MMDF cannot cope with (that is, that MMDF cannot deliver or return to its sender). MTBL defines an alias, domain, or channel table. The following parameters can be used: name a short name by which the table can be referred to later in the file file the file from which the contents of the table are built show a display line, which is used for reporting pur- poses to explain what the table is all about flags indicates additional properties about the table being defined. Use this to specify the source type, nameserver lookup parameters, and control of partial lookups table options. The following are possible values for flags: file comes from a sequentially read file (default). dbm is in the MMDF hashed database built with dbmbuild. ns the table data is obtained by making queries on a nameserver. domain specifies to look up the given address in the domain specified by dmn= parameter of the domain definition. channel specifies to look up the given fully- qualified domain name to determine the address(es) to use in delivering via SMTP. alias specifies to look up the given alias name in alias tables. abort specifies that if MMDF encounters a problem when searching an ns-type domain table, MMDF does not search any other domain tables (because the ns-type domain table is the most reliable). route specifies to search for successive sub- domains of the domain if no exact match exists. partial specifies to search for the domain in other domain tables; this allows users to omit the full domain specification when refer- ring to local machines. Note that MMDF treats flags=file and flags=dbm the same. In the case of an ns-type table, the flags field specifies the type of nameserver lookup (either domain, channel, or alias). A typical example might be: MTBL name=aliases, file=aliases, show="User & list aliases" If the first argument does not have an equal sign, the values of the other parameters take on this value. The following example sets the name, file, and show parameters to the string ``aliases'', then resets the show parameter to the string ``Alias table''. MTBL aliases, show="Alias table" MTBLDIR is the default directory for the table files. MTEMPT is the temporary files directory. If it is not a full pathname, it is taken relative to MQUEDIR. MWARNTIME specifies the time in hours that a message can remain in a queue before a warning message about delayed delivery is sent to the sender. See also MFAILTIME. UUname defines the UUCP sitename (short form, not full path) and is used only by the UUCP channel. See also MLNAME. See also dbmbuild(ADM), mmdf(ADM), queue(F) and tables(F). ``Setting Up Electronic Mail'' in the System Administrator's Guide Value added mmdftailor is an extension of AT&T System V provided by The Santa Cruz Operation, Inc. Credit MMDF was developed at the University of Delaware and is used with permis- sion.