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 |