Mapping tables

From Messaging Server Technical Reference Wiki
Jump to: navigation, search


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 crdb databases can be considered instances of just this sort of mapping table. MTA crdb 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 mapping XML elements and they may be referenced from within the msconfig utility as


mapping:mapping-name

where such a mapping table named mapping-name 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 imsimta test -mapping utility. (Note that the imsimta test -mapping 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 *_ACCESS mapping tables, or address changes due to the REVERSE mapping table. Instead, the imsimta test -rewrite utility is typically more useful for such functional or semantic testing.)


See also: