From: addresses and other backwards-pointing
addresses and forwards-pointing header addresses receive one additional
processing step.9 PMDF uses each address specification with
any routing address but less any personal name fields as an index key
to a special database called the address reversal database.
The address reversal database must be world readable and is generally
located in the PMDF table directory.
a This database file is built with the
CRDB (OpenVMS) or
pmdf crdb (UNIX and NT) utility.
If the address is found in the database, the corresponding right hand
side from the database is substituted for the address. If the address
is not found an attempt is made to locate a mapping table named
REVERSE in the mapping file. No substitution is made and
rewriting terminates normally if the table does not exist or no entries
from the table match.
You do not need to have an address reversal database in order to use a
If you have a compiled configuration, then you must recompile and reinstall your configuration in order for changes to the
$Nwill discard the result of the mapping. If the mapping entry specifies
$Din addition to
$Y, the resulting string will be run through the reversal database once more, and if a match occurs the template from the database will replace the mapping result (and hence the address). See Table 3-4 for a description of additional flags available for the
REVERSEmapping, and Table 5-2 for a list of general mapping table substitution sequences and metacharacters.
||Use output as new address|
||Address remains unchanged|
||Run output through the reversal database|
||Add pattern as reverse database entry|
||Add pattern as forward database entry|
||Match only header (body) addresses|
||Match only envelope addresses|
||Match only forward pointing addresses|
||Match only backwards pointing addresses|
||Match only message-ids|
noreverse channel keywords,
and the PMDF options
REVERSE_ENVELOPE may be used to control the specifics of
when and how address reversal is applied. In particular, address
reversal will not be applied to addresses in messages when the
destination channel is marked with the
USE_REVERSE_DATABASE is set to
reversal will not be used with any channel. The
REVERSE_ENVELOPE option controls whether or not address
reversal is applied to envelope From: addresses as well as message
header addresses. See the descriptions of these options and keywords
for additional information on their effects.
The primary use of address reversal is to substitute a generic address (perhaps an address on a central machine) for addresses on remote, and possibly transitory, systems. Address reversal is a particularly powerful tool when used in conjunction with aliases or the directory channel.
Entries in the address reversal database consist of two e-mail
addresses: the address to match against and the address with which to
replace a match. The database is usually created by preparing a text
file and processing it with the
PMDF CRDB (OpenVMS) or
pmdf crdb (UNIX or NT) utility.
For example, suppose a site wants to replace all reverse pointing
addresses of the form
firstname.lastname@example.org with an
address of the form
first.last is formed from the first (given) and
last (family) names of the owner of the account
will then cause the outside world to only see addresses of the form
email@example.com and never see internal
addresses. A text file
reverse.txt containing lines of the
The exact format needed for reverse database entries is determined by the value of the option
firstname.lastname@example.org email@example.com firstname.lastname@example.org email@example.com . . . . . .
$ PMDF CRDB reverse.txt PMDF_TABLE:reverse.tmp $ RENAME PMDF_TABLE:reverse.tmp PMDF_REVERSE_DATABASE
# pmdf crdb reverse.txt /pmdf/table/reversedb
As another example, suppose that the internal addresses at example.com
are actually of the form
fortunately, the username space is such that
firstname.lastname@example.org specify the same person for all
example.com. Then, rather than have to enter all
possible user and host combinations in the address reversal database,
the following, very simple
REVERSE mapping may be used in
conjunction with the address reversal database:
REVERSE *@*.example.com $email@example.com$Y$D
$Dflag causes the address reversal database to then be consulted. The address reversal database should contain entries of the form shown in the previous example.
Additional examples are given in Sections 126.96.36.199, 3.4, and 3.6.
Please note that unless
PMDF-DIRSYNC is being used to
automatically generate a reverse database, normally a
REVERSE mapping or reverse database must be constructed
manually. The design and maintenance of such a database is likely to be
a very site-specific task. The database, for the most part, may end up
being the inverse of the translations imposed by aliases on the local
system. This is not a requirement, however, and it may be useful to
have the database perform other, nonbijective (i.e.,
non-invertible), address transformations.
Although there is no address reversal database or mapping table by
default, address reversal is activated automatically once such an
address reversal database or
REVERSE mapping exists. (Note
that if you have a compiled PMDF configuration, then you must
recompile---and on OpenVMS reinstall---your PMDF configuration in order
for changes to the
REVERSE mapping to take effect.)
9 This processing can be restricted to
only backwards pointing addresses if the third bit, bit 2, in the PMDF