A local TCP/IP network can 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 can be infeasible in some environments, so a different solution can 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-name
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.
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 can
restrict the number of addresses that can appear in a single copy of a
message so it can be appropriate to add the
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 can 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.