TCPIP channels

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

TCP/IP channels

TCP/IP channels are used to link the MTA to TCP/IP based networks such as the Internet, as well as linking multiple hosts within a single site. The TCP/IP channels all use either the Simple Mail Transfer Protocol (SMTP), or the similar Local Mail Transport Protocol (LMTP). SMTP was defined originally in RFC 821 and updated in RFC 5321, and nowadays has many extensions such as those described in RFC 1426, RFC 1869, RFC 870, and RFC 1891. LMTP was defined in RFC 2033.1 The descriptions of these protocols and extensions may be found at the Internet Engineering Task Force (IETF) web site,

The TCP/IP SMTP channel includes a multithreaded SMTP server which runs under the control of the MTA Dispatcher. Outgoing SMTP mail is processed by the multithreaded SMTP client channel program (tcp_smtp_client), run as needed under the control of the MTA Job Controller.

The TCP/IP LMTP channel similarly includes a multithreaded LMTP server which runs under the control of the MTA Dispatcher; indeed, on a back end LMTP Message Store host, usually the only components of the MTA that are used are the MTA Dispatcher and the MTA's LMTP server. The TCP/IP LMTP channel also includes a multithreaded LMTP client channel program (which is in fact the same code and program as the SMTP client channel program, merely configured a bit differently), run as needed (on full-blown MTA hosts front-ending an LMTP back end host) under the control of the MTA Job Controller.

At most sites, TCP/IP channels are the primary channels in use. See Typical TCP/IP channels and servers for an overview of the basic, minimally-configured, TCP/IP channels and servers included by default in a Unified Configuration. There are many, many configuration modifications that may be made to TCP/IP channels. Besides the normal Channel options and especially the SMTP and LMTP protocol channel options, see also the TCP/IP-channel-specific options. In legacy configuration, channel options were termed "channel keywords" and were set on channels in the imta.cnf file, whereas TCP/IP-channel-specific options were set in channel-specific files such as tcp_local_option. In Unified Configuration, these fundamentally different categories of options may be distinguished by the location at which they are set, with channel options appearing directly under the name of the channel for which they are set,

msconfig> show = SMTP_POOL

whereas TCP/IP-channel-specific options are grouped under options,

msconfig> show*

For normal hosts on the Internet, configuring to prevent being an open SMTP relay, that is, configuring to block open SMTP relaying, is an esssential step. Nowadays initial installation typically takes care of the basics of such configuration, but reviewing that configuration is recommended.

Certain special configurations of TCP/IP channels can be of particular use. Routing via gateway systems, describes how to establish a "gateway" channel to route mail through another system, as for instance to a mailhub or firewall system. Triggering message transfer with remote SMTP systems describes performing "polling" with TCP/IP channels, that is, requesting that a remote system attempt to deliver any stored messages to your system; for instance, this may be particularly useful over "intermittent" sorts of TCP/IP links, such as dial-up connections.

Note 1When using LMTP to deliver messages to the Messaging Server Message Store, the MTA's LMTP server and LMTP client both make important use of several MTA proprietary LMTP extensions. These LMTP extensions are aimed to permit the LMTP server side of the LMTP transactions to be very simple, and not require "heavy weight" processing; the "heavier weight" processing of message addresses and message content is instead pre-performed on "front" MTAs. Thus the MTA's LMTP server is designed and intended to work only when "front-ended" by an MTA LMTP client host. The MTA's LMTP client, in contrast, may in principle be used with any LMTP back end.

See also: