Multiple, addrsperfile, single, single_sys Channel Options

From Messaging Server Technical Reference Wiki
Jump to: navigation, search

Addresses per message copy (multiple, addrsperfile, single, single_sys)

The MTA allows multiple destination addresses to appear in each queued message copy. Some channel programs, however, may only be able to process messages with one recipient per copy, or with a limited number of recipients, or with a single destination system per message copy. For example, the SMTP client programs for TCP/IP channels only establish a connection to a single remote host in a given transaction, so only addresses to that host can be processed (this despite the fact that a single TCP/IP channel is typically used for all outbound Internet message traffic). Another example is that some SMTP servers may impose a limit on the number of recipients they can handle at one time, and they may not handle errors in this area at all gracefully.

The channel options multiple, addrsperfile, single, and single_sys can be used to control how the MTA handles multiple addresses. single means that a separate copy of the message should be created for each destination address on the channel. single_sys creates a single copy of the message for each destination system (more precisely, each destination domain name) associated with a recipient address. multiple creates a single copy of the message for the entire channel. Note that at least one copy of each message is created for each channel the message is queued to, regardless of the options used. multiple is the default for all channels marked with the nosmtp channel option. Channels marked with one of the smtp* channel options default to single_sys unless the daemon option has been set. Prior to 7.0 channels marked with one of the LMTP options defaulted to multiple, as of 7.0 they also default to single_sys unless daemon has been set. (Actually, calling this the "default" is something of a misnomer - without daemon SMTP and LMTP channels will be forced to single_sys regardless of the channel setting. This is done to prevent delivery of messages to the wrong system and possibly to the wrong user.)

These options also affect the Job Controller's "sorting" and organization of messages on a channel. The single_sys option causes the Job Controller to organize messages into separate internal lists based on destination domain. (And hence a command such as imsimta qm messages will show messages sorted by destination host.)

The addrsperfile channel option is used to put a limit on the maximum number of recipients that can be associated with a single message file in an MTA channel queue, thus limiting the number of recipients that will be processed in a single operation. This option requires a single integer argument specifying the maximum number of recipient addresses allowed in a message file; if this number is reached the MTA will automatically create additional message files to accomodate them.

Note that the default of addrsperfile depends on the channel type. For most channel types, addrsperfile defaults to effectively unlimited (2147483647), but setting an smtp* option on a channel causes addrsperfile to default to 99, while setting an lmtp* option on a channel causes addrsperfile to default to 999.

The default messages per channel copy setting varies by channel type. The multiple option is the default for everything except tcp_* channels. tcp_* channels default to multiple if daemon is set, and single_sys if it is not. The combination of an explicit multiple and no daemon isn't allowed on tcp_* channels and will be overridden by forcing a setting of single_sys.

See also: