A local TCP/IP network may include one or more systems that are equipped to relay messages to machines not directly accessible on the local network. Such gateway systems accept addresses that are not palatable to the network itself.
One solution to this problem is to use appropriate MX records and a name resolver. However, this approach may be infeasible in some environments, so a different solution may be needed.
There is an alternate approach, in which routing to TCP/IP gateways is done by creating additional channels, one per gateway system, in the configuration file. The name of these channels must always begin with tcp_ for the multithreaded TCP SMTP channel. The channel blocks have the general form:
tcp_gateway smtp daemon router gateway-system-nameor equivalently,
tcp_gateway smtp daemon gateway-system-name arbitrary-placeholder-name
Rewrite rules must then be added to the configuration file to route the appropriate addresses to the gateway. See, for instance, Example 2-3 .
The "daemon router
" keyword phrase tells the
SMTP client program not to open a connection directly to the first
system named in the envelope address list, but to instead open a
connection to the official host for this channel,
gateway-system-name
. Certain gateways may
restrict the number of addresses that can appear in a single copy of a
message so it may be appropriate to add the single
or
single_sys
keywords to the channel block for some gateway
channels. If the gateway can handle multiple simultaneous connections,
then use of the threaddepth
keyword may be of interest to
cause outgoing connections to be split amongst multiple threads.
Once a channel block for a gateway is created the channel should be ready to use.