Previous | Contents | Index |
Once you have settled on a naming scheme and dealt with routing issues it is time to implement it. First you should establish an appropriate forwarding mechanism to convert incoming addresses to your internal format, i.e., to accept incoming mail and forward it to the appropriate internal mailbox. Several methods of doing this are discussed in Section 3.5. A specific example is also presented below. After establishing a method to handle incoming mail, you are ready to begin emitting mail to the outside world using your new address format. This is accomplished with either an address reversal database or REVERSE
mapping as described in Section 3.3.2. Either of these will convert addresses in outbound mail messages to your centralized naming format. If your format leaves the mailbox portion of addresses alone, then you can accomplish this step more efficiently with domain rewrite rules similar to those described in Section 3.5.2.1. In this case, however, you would use the $R
flag instead of $F
.
If the conversion from internal addresses to centralized addresses is very algorithmic and an address in one format contains all of the information required to construct the equivalent address in the other format, then you should be able to use FORWARD
and REVERSE
mappings. However, this is rarely the case. At best, it is usually only possible to do this in one direction (e.g., Jane.Doe@Example.com
-> jdoe@Example.com
). It is far more likely that you will need to use the alias and address reversal databases, possibly in conjunction with the REVERSE
mapping too. This is the situation covered in the example which follows.
Suppose the domain Example.Com has two general purpose computing machines, Marvel.Example.Com
and Admin.Example.Com
, an enclave of cc:Mail users reached via the gateway ccMail.Example.Com
, and ALL-IN-1 IOS users reached via PMDF-MR using the gateway A1.Example.Com
. From the outside world all mail to Example employees is addressed to first.last@Example.Com
and Example.Com
is actually the host Marvel.Example.Com. Suppose further that within ALL-IN-1
, the mailbox name space is of the form "Last, First
", in cc:Mail
it is "First Last
", and on vaxa.Example.Com and Admin.Example.Com
mailbox names correspond to usernames. The name space for the four
machines is shown in Table 3-6.
Internal address | Centralized address |
---|---|
Marvel.Example.Com mailboxes | |
richardsr@Marvel.Example.Com | Mr.Fantastic@Example.Com |
grimmb | The.Thing |
storms | Invisible.Girl |
stormj | Human.Torch |
Admin.Example.Com mailboxes | |
wchristopher@Admin.Example.Com | Warren.Christopher@Example.Com |
lbentsen | Lloyd.Bentsen |
laspin | Les.Aspin |
jreno | Janet.Reno |
bbabbitt | Bruce.Babbitt |
mespy | Mike.Espy |
rbrown | Ronald.Brown |
rreich | Robert.Reich |
dshalala | Donna.Shalala |
hcisneros | Henry.Cisneros |
fpena | Federico.Pena |
holeary | Hazel.OLeary |
rriley | Richard.Riley |
jbrown | Jesse.Brown |
ccMail.Example.Com mailboxes | |
"Harry Blackmun"@ccMail.Example.Com | Harry.Blackmun@Example.Com |
"William Rehnquist" | William.Rehnquist |
"John Paul Stevens" | John.Paul.Stevens |
"Sandra Day OConnor" | Sandra.Day.OConnor |
"Antonin Scalia" | Antonin.Scalia |
"Anthony Kennedy" | Anthony.Kennedy |
"David Souter" | David.Souter |
"Clarence Thomas" | Clarence.Thomas |
"Ruth Bader Ginsberg" | Ruth.Bader.Ginsburg |
A1.Example.Com mailboxes | |
"Burford, Anne"@A1.Example.Com | Anne.Burford@Example.Com |
"Deaver, Michael" | Michael.Deaver |
"Donovan, Raymond" | Raymond.Donovan |
"Meese, Ed" | Ed.Meese |
"Nofziger, Lyn" | Lyn.Nofziger |
For this case, we can easily map back and forth between the centralized format and cc:Mail
or ALL-IN-1
addresses. However, we can only take advantage of this with outbound messages. For inbound messages you still need to know which host, ccMail.Example.Com
or A1.Example.Com
, to which to direct a message. We will use an alias database to handle
incoming mail.
There should be a DNS MX
record for Example.Com
which points to Marvel.Example.Com.
Moreover, Marvel.Example.Com
should either use Example.Com
as its official local host name (host name on the local channel), or rewrite Example.Com
to its official local host name. By doing this, mail to user@Example.Com
is equated to the local channel and user
is then looked up in to the alias file or database. This then allows us to use the alias database as a means of forwarding incoming mail for Example.Com
to its correct, internal destination. Also, USE_REVERSE_DATABASE
should be set to 5,
USE_REVERSE_DATABASE=5 |
REVERSE
mapping and address reversal database to all header addresses instead
of just reverse pointing addresses.
The alias
database source file shown in Example 3-9, the address reversal database source file shown in Example 3-10, and the REVERSE
mapping table shown in Example 3-11 together implement this centralized naming scheme.
d For instance, a message coming from jreno@Admin.Example.Com
will have its From:
address changed to Janet.Reno@Example.Com
in accord with the entry in the address reversal database. Similarly messages from "Harry Blackmun"@ccMail.Example.Com
and "Sandra Day OConnor"@Example.Com
will have their From:
addresses changed to Harry.Blackmun@Example.Com
and Sandra.Day.OConnor@Example.Com
by the second and first entries in the REVERSE
mapping table. Incoming mail messages to Janet.Reno@Example.Com
will be forwarded to jreno@Admin.Example.Com
in accord with the entry in the alias
database.
Example 3-9 Alias Database Source File |
---|
! ! Marvel.Example.Com users ! Mr.Fantastic richardsr@Marvel.Example.Com The.Thing grimmb@Marvel.Example.Com Invisible.Girl storms@Marvel.Example.Com Human.Torch stormj@Marvel.Example.Com ! ! Admin.Example.Com users ! Warren.Christopher wchristopher@Admin.Example.Com Lloyd.Bentsen lbentsen@Admin.Example.Com Les.Aspin laspin@Admin.Example.Com Janet.Reno jreno@Admin.Example.Com Bruce.Babbitt bbabbitt@Admin.Example.Com Mike.Espy mespy@Admin.Example.Com Ronald.Brown rbrown@Admin.Example.Com Robert.Reich rreich@Admin.Example.Com Donna.Shalala dshalala@Admin.Example.Com Henry.Cisneros hcisneros@Admin.Example.Com Federico.Pena fpena@Admin.Example.Com Hazel.OLeary holeary@Admin.Example.Com Richard.Riley rriley@Admin.Example.Com Jesse.Brown jbrown@Admin.Example.Com ! ! ccMail.Example.Com users ! Harry.Blackmun "Harry Blackmun"@ccMail.Example.Com William.Rehnquist "William Rehnquist"@ccMail.Example.Com John.Paul.Stevens "John Paul Stevens"@ccMail.Example.Com Sandra.Day.OConnor "Sandra Day OConnor"@ccMail.Example.Com Antonin.Scalia "Antonin Scalia"@ccMail.Example.Com Anthony.Kennedy "Anthony Kennedy"@ccMail.Example.Com David.Souter "David Souter"@ccMail.Example.Com Clarence.Thomas "Clarence Thomas"@ccMail.Example.Com Ruth.Bader.Ginsburg "Ruth Bader Ginsberg"@ccMail.Example.Com ! ! A1.Example.Com users ! Anne.Burford "Burford, Anne"@A1.Example.Com Michael.Deaver "Deaver, Michael"@A1.Example.Com Raymond.Donovan "Donovan, Raymond"@A1.Example.Com Ed.Meese "Meese, Ed"@A1.Example.Com Lyn.Nofziger "Nofziger, Lyn"@A1.Example.Com |
Example 3-10 Reverse Database Source File |
---|
! ! Marvel.Example.Com users ! richardsr@Marvel.Example.Com Mr.Fantastic@Example.Com grimmb@Marvel.Example.Com The.Thing@Example.Com storms@Marvel.Example.Com Invisible.Girl@Example.Com stormj@Marvel.Example.Com Human.Torch@Example.Com ! ! Admin.Example.Com users ! wchristopher@Admin.Example.Com Warren.Christopher@Example.Com lbentsen@Admin.Example.Com Lloyd.Bentsen@Example.Com laspin@Admin.Example.Com Les.Aspin@Example.Com jreno@Admin.Example.Com Janet.Reno@Example.Com bbabbitt@Admin.Example.Com Bruce.Babbitt@Example.Com mespy@Admin.Example.Com Mike.Espy@Example.Com rbrown@Admin.Example.Com Ronald.Brown@Example.Com rreich@Admin.Example.Com Robert.Reich@Example.Com dshalala@Admin.Example.Com Donna.Shalala@Example.Com hcisneros@Admin.Example.Com Henry.Cisneros@Example.Com fpena@Admin.Example.Com Federico.Pena@Example.Com holeary@Admin.Example.Com Hazel.OLeary@Example.Com rriley@Admin.Example.Com Richard.Riley@Example.Com jbrown@Admin.Example.Com Jesse.Brown@Example.Com |
Example 3-11 REVERSE Mapping Table |
---|
REVERSE "*$ *$ *"@ccMail.Example.Com $0.$1.$2@Example.Com$Y "*$ *"@ccMail.Example.Com $0.$1@Example.Com$Y "*,$ *"@A1.Example.Com $1.$0@Example.Com$Y |
The alias and address reversal databases are generated from your source files with the PMDF CRDB
(OpenVMS) or pmdf crdb
(UNIX or NT) utility as described in Sections 3.1.2 and 3.3.2. See Chapter 29 and Chapter 30 for information on the CRDB or crdb
utility itself. When generating these databases on VMS, it is best to
use an intermediate file so as to eliminate any windows during which
the "live" databases are in a mixed state. For instance, use
the OpenVMS commands,
$ PMDF CRDB alias-source-file PMDF_TABLE:aliases.tmp $ PMDF CRDB reverse-source-file PMDF_TABLE:reverse.tmp $ RENAME PMDF_TABLE:aliases.tmp PMDF_ALIAS_DATABASE $ RENAME PMDF_TABLE:reverse.tmp PMDF_REVERSE_DATABASE |
# pmdf crdb alias-source-file PMDF_ALIAS_DATABASE # pmdf crdb reverse-source-file PMDF_REVERSE_DATABASE |
C:\ pmdf crdb alias-source-file PMDF_ALIAS_DATABASE C:\ pmdf crdb reverse-source-file PMDF_REVERSE_DATABASE |
If you are using the PMDF multithreaded SMTP server (tcp_*
channels), then be sure to restart the SMTP server after generating new
database files. If you have merely added entries to an existing
database file, then you do not need to restart the SMTP server.
d Many sites maintain a single source
file from which, using a site-supplied procedure, they generate
|
Previous | Next | Contents | Index |