Option File Format and Available Options

Option files consist of several lines. Each line contains the setting for one option. An option setting has the form:

 
option=value
 

value may be either a string or an integer, depending on the option's requirements. If the option accepts an integer value, a base may be specified using notation of the form b%v, where b is the base expressed in base 10 and v is the actual value expressed in base b.

Comments are allowed. Any line that begins with an exclamation point (!) is considered to be a comment and is ignored. Blank lines are also ignored in any option file.

The available options are listed in TABLE 3-14.

TABLE  3-14   Option File Options
Options
Description

ACCESS_ERRORS (Integer 0 or 1)  

IMTA provides facilities to restrict access to channels on the basis of group IDs on the SunOS operating system. If ACCESS_ERRORS is set to 0 (the default), when an address causes an access failure IMTA will report it as a "illegal host or domain" error. This is the same error that would occur if the address were simply illegal. Although confusing, this usage nevertheless provides an important element of security in circumstances where information about restricted channels should not be revealed. Setting ACCESS_ERRORS to 1 will override this default and provide a more descriptive error.  

ALIAS_HASH_SIZE
(Integer <= 32,767)  

This option sets the size of the alias hash table. This in turn is an upper limit on the number of aliases that can be defined in the alias file. The default is 256; the maximum value allowed is 32,767.  

ALIAS_MEMBER_SIZE
(Integer <= 20,000)  

This option controls the size of the index table that contains the list of alias translation value pointers. The total number of addresses on the right-hand sides of all the alias definitions in the alias file cannot exceed this value. The default is 320; the maximum allowed is 20,000.  

BLOCK_LIMIT (Integer > 0)  

This option places an absolute limit on the size, in blocks, of any message which may be sent or received with IMTA. Any message exceeding this size will be rejected. By default, IMTA imposes no size limits. Note also that the blocklimit channel keyword can be used to impose limits on a per channel basis. The size in bytes of a block is specified with the BLOCK_SIZE option.  

BLOCK_SIZE (Integer > 0)  

IMTA uses the concept of a "block" in several ways. For example, the IMTA log files (resulting from placing the logging keyword on channels) record message sizes in terms of blocks. Message size limits specified via the maxblocks keyword are also in terms of blocks. Normally, an IMTA block is equivalent to 1024 characters. This option can be used to modify this sense of what a block is.

Note that the IMTA stores message sizes internally as an integer number of blocks. If the size of a block in bytes is set to a very small value, it is possible for a very large message to cause an integer overflow. A message size of greater than 2**31 blocks would be needed, but this value is not inconceivable if the block size is small enough.  

CHANNEL_TABLE_SIZE

(Integer <= 32,767)  

This option controls the size of the channel table. The total number of channels in the configuration file cannot exceed this value. The default is 256; the maximum is 32,767.  

CONVERSION_SIZE

(Integer <= 2000)  

This option controls the size of the conversion entry table, and thus the total number of conversion file entries cannot exceed this number. The default is 32.  

DEQUEUE_DEBUG (0 or 1)  

This option specifies whether debugging output from IMTA's dequeue facility (QU) is produced. If enabled with a value of 1, this output will be produced on all channels that use the QU routines. The default value of 0 disables this output.  

DOMAIN_HASH_SIZE

(Integer <= 32,767)  

This option controls the size of the domain rewrite rules hash table. Each rewrite rule in the configuration file consumes one slot in this hash table; thus the number of rewrite rules cannot exceed this option's value. The default is 512; the maximum number of rewrite rules allowed is 32,767.  

EXPROUTE_FORWARD

(Integer 0 or 1)  

This option controls the application of the exproute channel keyword to forward-pointing (To:, Cc:, and Bcc: lines) addresses in the message header. A value of 1 is the default and specifies that exproute should affect forward-pointing header addresses. A value of 0 disables the action of the exproute keyword on forward-pointing addresses.  

HISTORY_TO_RETURN (1-200)  

The HISTORY_TO_RETURN option controls how many delivery attempt history records are included in returned messages. The delivery history provides some indication of how many delivery attempts were made and in some cases indicates the reason the delivery attempts failed. The default value for this option is 20.  

HOST_HASH_SIZE

(Integer <= 32,767)  

This option controls the size of the channel hosts hash table. Each channel host specified on a channel definition in the IMTA configuration file (both official hosts and aliases) consumes one slot in this hash table, so the total number of channel hosts cannot exceed the value specified. The default is 512; the maximum value allowed is 32,767.  

ID_DOMAIN (String)  

The ID_DOMAIN option specifies the domain name to use when constructing message IDs. By default, the official host name of the local channel is used.  

IMPROUTE_FORWARD

(Integer 0 or 1)  

This option controls the application of the improute channel keyword to forward-pointing (To:, Cc:, and Bcc: lines) addresses in the message header. A value of 1 is the default and specifies that improute should affect forward-pointing header addresses. A value of 0 disables the action of the improute keyword on forward-pointing addresses.  

LINE_LIMIT (Integer)  

This option places an absolute limit on the overall number of lines in any message that may be sent or received with IMTA. Any message exceeding this limit will be rejected. By default, IMTA imposes no line-count limits. Note also that the linelimit channel keyword can be used to impose limits on a per channel basis.  

LINES_TO_RETURN (Integer)  

The LINES_TO_RETURN option controls how many lines of message content IMTA includes when bouncing messages. The default is 20.  

LOG_CONNECTION (0 or 1)  

The LOG_CONNECTION option controls whether connection information--for example, the domain name of the SMTP client sending the message--is saved in the mail.log file. A value of 1 enables connection logging. A value of 0 (the default) disables it.  

LOG_FILENAME (0 or 1)  

The LOG_FILENAME option controls whether the names of the files in which messages are stored are saved in the mail.log file. A value of 1 enables file name logging. A value of 0 (the default) disables it.  

LOG_FORMAT (1, 2, or 3)  

The LOG_FORMAT option controls formatting options for the mail.log file. A value of 1 (the default) is the standard format. A value of 2 requests non-null formatting: empty address fields are converted to the string "<>." A value of 3 requests counted formatting: all variable length fields are preceded by "N:," where "N" is a count of the number of characters in the field.  

LOG_HEADER (0 or 1)  

The LOG_HEADER option controls whether the IMTA writes message headers to the mail.log file. A value of 1 enables message header logging. The specific headers written to the log file are controlled by a site-supplied log_header.opt file. The format of this file is that of other IMTA header option files. For example, a log_header.opt file containing the following would result in writing the first To: and the first From: header per message to the log file. A value of 0 (the default) disables message header logging:

To: MAXIMUM=1

From: MAXIMUM=1

Defaults: MAXIMUM=-1  

LOG_LOCAL (0 or 1)  

The LOG_LOCAL option controls whether the domain name for the local host is appended to logged addresses that don't already contain a domain name. A value of 1 enables this feature, which is useful when logs from multiple systems running IMTA are concatenated and processed. A value of 0, the default, disables this feature.  

LOG_MESSAGE_ID (0 or 1)  

The LOG_MESSAGE_ID option controls whether message IDs are saved in the mail.log file. A value of 1 enables message ID logging. A value of 0 (the default) disables it.  

LOG_USERNAME (0 or 1)  

The LOG_USERNAME option controls whether the user name associated with a process that enqueues mail is saved in the mail.log file. A value of 1 enables user name logging. A value of 0 (the default) disables it.  

MAP_NAMES_SIZE

(Integer > 0)  

The MAP_NAMES_SIZE option specifies the size of the mapping table name table, and thus the total number of mapping table cannot exceed this number. The default is 32.  

MAX_ALIAS_LEVELS (Integer)  

The MAX_ALIAS_LEVELS option controls the degree of indirection allowed in aliases; that is, how deeply aliases may be nested, with one alias referring to another alias, and so forth. The default value is 10.  

MAX_HEADER_BLOCK_USE

(Real Number Between 0 and 1)  

The MAX_HEADER_BLOCK_USE keyword controls what fraction of the available message blocks can be used by message headers.  

MAX_HEADER_LINE_USE

(Real Number Between 0 and 1)  

The MAX_HEADER_LINE_USE keyword controls what fraction of the available message lines can be used by message headers.  

MAX_INTERNAL_BLOCKS (Integer)  

The MAX_INTERNAL_BLOCKS option specifies how large (in IMTA blocks) a message IMTA will keep entirely in memory; messages larger than this size will be written to temporary files. The default is 10. For systems with lots of memory, increasing this value may provide a performance improvement.  

MAX_LOCAL_RECEIVED_LINES (Integer)  

As IMTA processes a message, it scans any Received: header lines attached to the message looking for references to the official local host name. (Any Received: line that IMTA inserts will contain this name.) If the number of Received: lines containing this name exceeds the MAX_LOCAL_RECEIVED_LINES value, the message is entered in the IMTA queue in a held state. The default for this value is 10 if no value is specified in the option file. This check blocks certain kinds of message forwarding loops. The message must be manually moved from the held state for processing to continue.  

MAX_RECEIVED_LINES (Integer)  

As IMTA processes a message, it counts the number of Received: header lines in the message's header. If the number of Received: lines exceeds the MAX_RECEIVED_LINES value, the message is entered in the IMTA queue in a held state. The default for this value is 50 if no value is specified in the option file. This check blocks certain kinds of message forwarding loops. The message must be manually moved from the held state for processing to continue.  

MM_DEBUG (Integer <=5)  

The MM_DEBUG option requests various levels of debugging of enqueue routines (handling address rewriting, mapping, conversions, etc.). Both master_debug and slave_debug must be set on a channel in order for MM_DEBUG settings to take affect. The l channel is an exception. Higher settings of MM_DEBUG cause more verbose output.  

NORMAL_BLOCK_LIMIT (Integer)  

The NORMAL_BLOCK_LIMIT option may be used to instruct IMTA to downgrade the priority of messages based on size: messages above the specified size will be downgraded to non-urgent priority. This priority, in turn, may affect whether the message is processed immediately, or whether it is left to wait for processing until the next periodic job runs.  

NON_URGENT_BLOCK_LIMIT (Integer)  

The NON_URGENT_BLOCK_LIMIT option may be used to instruct IMTA to downgrade the priority of messages based on size: messages above the specified size will be downgraded to lower than non-urgent priority, meaning that they will not be processed immediately and will wait for processing until the next periodic job runs. The value is interpreted in terms of IMTA blocks, as specified by the BLOCK_SIZE option. Note also that the nonurgentblocklimit channel keyword may be used to impose such downgrade thresholds on a per channel basis.  

ORIGINAL_CHANNEL_PROBE

(0 or 1)  

This option controls whether things like mapping table probes use the original channel as the input channel name, or use the current source channel as the input channel name. The default is 0, meaning to use the current input channel name.  

OS_DEBUG (0 or 1)  

The OS_DEBUG option requests debugging of OS routines (routines for creating, opening, and closing files and getting system times, etc.). Both master_debug and slave_debug must be set on a channel in order for OS_DEBUG to take affect. l channel is an exception. The output goes to the normal channel debug log files.  

POST_DEBUG (0 or 1)  

This option specifies whether debugging output is produced by IMTA's periodic delivery job. If enabled with a value of 1, this output will be produced in the post.log file. The default value of 0 disables this output.  

RECEIVED_DOMAIN (String)  

The RECEIVED_DOMAIN option sets the domain name to use when constructing Received: headers. By default, the official host name of the local channel.  

RETURN_ADDRESS (String)  

The RETURN_ADDRESS option sets the return address for the local postmaster. The local postmaster's address is postmaster@localhost by default, but it can be overridden with the address of your choice. Care should be taken in the selection of this address--an illegal selection may cause rapid message looping and pile-ups of huge numbers of spurious error messages.  

RETURN_DEBUG (0 or 1)  

The RETURN_DEBUG option enables or disables debugging output in the nightly message bouncer batch job. A value of 0 disables this output (the default), while a value of 1 enables it. Debugging output, if enabled, appears in the output log file, if such a log file is present. The presence of an output log file is controlled by the crontab entry for the return job.  

RETURN_DELIVERY_HISTORY (0 or 1)  

This flag controls whether or not a history of delivery attempts is included in returned messages. The delivery history provides some indication of how many delivery attempts were made and, in some cases, indicates the reason the delivery attempts failed. A value of 1 enables the inclusion of this information and is the default. A value of 0 disables return of delivery history information. The HISTORY_TO_RETURN option controls how much history information is actually returned.  

RETURN_ENVELOPE (Integer)  

The RETURN_ENVELOPE option takes a single integer value, which is interpreted as a set of bit flags. Bit 0 (value = 1) controls whether return notifications generated by IMTA are written with a blank envelope address or with the address of the local postmaster. Setting the bit forces the use of the local postmaster address; clearing the bit forces the use of a blank addresses. Note that the use of a blank address is mandated by RFC 1123. However, some systems do not handle blank-envelope-from-address properly and may require the use of this option. Bit 1 (value = 2) controls whether IMTA replaces all blank envelope addresses with the address of the local postmaster. Again, this is used to accommodate noncompliant systems that don't conform to RFC 821, RFC 822, or RFC 1123. Note also that the returnenvelope channel keyword can be used to impose this sort of control on a per channel basis.  

RETURN_PERSONAL (String)  

The RETURN_PERSONAL option specifies the personal name to use when IMTA generates postmaster messages (for example, bounce messages). By default, IMTA uses the string, "Internet Mail Delivery."  

REVERSE_ENVELOPE (0 or 1)  

The REVERSE_ENVELOPE option controls whether IMTA applies the address reversal to envelope From: addresses as well as header addresses. This option will have no effect if the USE_REVERSE_DATABASE option is set to 0 or if the reverse database does not exist. The default is 1, which means that IMTA will attempt to apply the database to envelope From: addresses. A value of 0 will disable this use of the address reversal database.  

STRING_POOL_SIZE (Integer <= 10,000,000)  

The STRING_POOL_SIZE option controls the number of character slots allocated to the string pool used to hold rewrite rule templates and alias list members. A fatal error will occur if the total number of characters consumed by these parts of the configuration and alias files exceeds this limit. The default is 60,000; the maximum allowed value is 10,000,000.  

URGENT_BLOCK_LIMIT (Integer)  

The URGENT_BLOCK_LIMIT option may be used to instruct IMTA to downgrade the priority of messages based on size: messages above the specified size will be downgraded to normal priority. This priority, in turn, may affect whether the message is processed immediately or left to wait for processing until the next periodic job runs. The value is interpreted in terms of IMTA blocks, as specified by the BLOCK_SIZE option. Note also that the urgentblocklimit channel keyword may be used to impose such downgrade thresholds on a per channel basis.  

USE_ALIAS_DATABASE (0 or 1)  

The USE_ALIAS_DATABASE option controls whether IMTA makes use of the alias database as a source of system aliases for local addresses. The default is 1, which means that IMTA will check the database if it exists. A value of 0 will disable this use of the alias database.  

USE_ERRORS_TO (0 or 1)  

The USE_ERRORS_TO option controls whether IMTA makes use of the information contained in Errors-to: header lines when returning messages. Setting this option to 1 directs IMTA to make use of this header line. A value of 0, the default, disable uses of this header line.  

USE_REVERSE_DATABASE (0-31)  

The USE_REVERSE_DATABASE option controls whether IMTA makes use of the address reversal database and REVERSE mapping as a source of substitution addresses. This value is a decimal integer representing a bit-encoded integer, the interpretation of which is given in TABLE 3-15.  

USE_WARNINGS_TO (0 or 1)  

The USE_WARNINGS_TO option controls whether IMTA makes use of the information contained in Warnings-to: header lines when returning messages. Setting this option to 1 directs IMTA to make use of these header lines. The default is 0, which disables use of this header line.  



TABLE  3-15   USE_REVERSE_DATABASE Bit Values
Bit
Value
Usage

0  

1  

When set, address reversal is applied to addresses after they have been rewritten by the IMTA address-rewriting process.  

1  

2  

When set, address reversal is applied before addresses have had IMTA address rewriting applied to them.  

2  

4  

When set, address reversal will be applied to all addresses, not just to backward-pointing addresses.  

3  

8  

When set, channel-level granularity is used with REVERSE mapping. REVERSE mapping table (pattern) entries must have the form (note the vertical bars [|])

source-channel|

destination-channel|

address  

4  

16  

When set, channel-level granularity is used with address reversal database entries. Reversal database entries must have the form (note the vertical bars [|])

source-channel|

destination-channel|

address

Note that Bit 0 is the least significant bit.

The default value for USE_REVERSE_DATABASE is 5, which means that IMTA will reverse envelope From: addresses and both backward- and forward-pointing addresses after they have passed through the normal address-rewriting process. Simple address strings are presented to both REVERSE mapping and the reverse database. Note that a value of 0 disables the use of the address reversal completely.  




Copyright © 1999 Sun Microsystems, Inc. All Rights Reserved.