Exproute, noexproute, improute, noimproute Channel Options
Routing information in addresses (
The ideal addressing model that the MTA deals with assumes that all systems are aware of the addresses of all other systems and how to get to them. Unfortunately, this ideal is not attainable in many cases. The usual exception occurs when a channel connects to one or more systems that are not known to the rest of the world (e.g., internal machines on a private network). Addresses for systems on this channel may not be legal on remote systems outside of the site. If such addresses are to be made repliable, they must contain a source route that tells remote systems to route messages through the local machine. The local machine can then (automatically) route the messages to these machines.
exproute channel option (short for "explicit routing") tells the MTA that the associated channel requires explicit routing when its addresses are passed on to remote systems. If this option is specified on a channel, the MTA will add routing information containing the name of the local system (
channel:l.official_host_name) (or the current alias for the local system, the current channel's
local_host_alias) to all header addresses and all envelope From addresses that match the channel.
noexproute, the default, specifies that no routing information should be added.
The MTA option
exproute_forward can be used to restrict the action of
exproute to backward-pointing addresses if desired.
Another scenario occurs when the MTA connects to a system via a channel that cannot perform proper routing for itself. In this case all addresses associated with other channels need to have routing inserted into them when they are used in mail sent to the channel that connects to the incapable system.
Implicit routing and the
improute channel option are used to handle this situation. The MTA knows that all addresses matching other channels need routing when they are used in mail sent to a channel marked
noimproute, the default, specifies that no routing information should be added to addresses in messages going out on the specified channel.
improute_forward MTA option can be used to restrict the action of
improute to backward-pointing addresses if desired.
improute channel options should be used sparingly. It makes addresses longer, more complex, and may defeat intelligent routing schemes used by other systems.
Explicit and implicit routing should not be confused with specified routes. Specified routes are used to insert routing information from rewrite rules into addresses. This is activated by the special A@B@C rewrite rule template. Specified routes, when activated, apply to all addresses, both in the header and the envelope. Specified routes are activated by particular rewrite rules and as such are usually independent of the channel currently in use. Explicit and implicit routing, on the other hand, are controlled on a per-channel basis and the route address inserted is always the local system.