In cases where address forwardings need to be auto-registered or source specific, the forward lookup table is available. Note that use of the Forward lookup table for simple forwarding of messages is generally not appropriate; the aliases file or alias lookup table is a more efficient way to perform such forwarding. By default, the forward lookup table is not used at all; its use must be explicitly enabled via the USE_FORWARD_DATABASE option. Forward table lookups are performed after address rewriting and after alias expansion is performed, and after any FORWARD mapping is checked. If a forward table lookup succeeds, the resulting substituted address is then run through the MTA address rewriting process all over again.
There are two mechanisms available for the forward lookup table, an in-memory hash table or conventional text database. Unless the size of the table is prohibitively large then hash table is recommended. (1,000 is not prohibitively large, 100,000 is). The hash table is enabled by setting bit 2 (value 4) in the use_text_databaseS option as well as setting use_forward_database. The hash table is read from msg-svr-base/configure/forward.txt, compiled into the reloadable part of the configuration, and can be forced to be reloaded into the active MTA processes by the imsimta reload command.
The format of the source text file by default is expected to be:
user1@domain1 changedmailbox1@changeddomain1 user2@domain2 changedmailbox@changeddomain2
For instance, an entry such as
email@example.comfirstname.lastname@example.org “helen of troy”@siroe.com
will map the To: address email@example.com to “helen of troy”@siroe.com if and only if the message is coming from firstname.lastname@example.org and the enqueuing channel is tcp_limited.
See 10.9.1 MTA Text Databases for more information on the Forward Text database.