Mapping tables

Many components of the MTA employ table lookup oriented information. One particular type of table is used more often in the MTA than any other. Generally speaking, this sort of table is used to transform (i.e., map) an input string into an output string. Such tables, referred to as mapping tables, are usually presented as two columns, the first or left-hand column giving the possible input strings and the second or right-hand column giving the resulting output string for the input it is associated with. Indeed, most of the MTA  databases can be considered instances of just this sort of mapping table. MTA  database files,  however, do not provide wildcard lookup facilities, owing to inherent inefficiencies in having to scan the entire database for wildcard matches.

For more flexible, pattern-based mappings, the MTA also supports its own mapping tables. In legacy configuration mode, such MTA mapping tables are stored in the MTA mapping file; in Unified Configuration, MTA mapping tables are  XML elements and they may be  referenced from within the   utility as  mapping:mapping-name where such a mapping table named   consists of an ordered list of rules. Full wildcard facilities are provided, and multi-step and iterative mapping methods can be accommodated as well. This approach is more compute-intensive than using a database, especially when the number of entries is large. However, the attendant gain in flexibility may actually serve to eliminate the need for most of the entries in an equivalent database, and this may actually result in lower overhead overall.

A fairly complete list of the mapping table names always recognized by the MTA is available under Pre-defined mapping tables. Some of the most commonly used mapping tables are the access mapping tables used to control who can send and receive e-mail. Sites may also define arbitrary mapping tables.

You can test general mapping table processing with the   utility. (Note that the  utility tests only the general-to-all-mapping-tables functionality. It is not specific for testing of the functional meaning of specific mapping tables,  such as access controls due to address-based   mapping  tables, or address changes due to  the   mapping table.  Instead, the     utility is typically more useful for such functional or semantic testing.)

See also:
 * Handling large numbers of mapping table entries
 * The mapping group
 * Mapping operation
 * Mapping table format
 * Mapping table format in legacy configuration
 * Mapping table format in Unified Configuration
 * Pre-defined mapping tables
 * Access mapping tables
 * Testing mapping tables
 * Mapping table MTA options
 * When mapping table changes take effect
 * crdb utility
 * test -mapping utility
 * test -rewrite utility
 * Callout routines
 * The MTA