> If I understand your proposal correctly, you are basically suggesting that
> each user be assigned a POP3 mailbox name and an SMTP e-mail address, with
> each referenced by each side of the e-mail server.

Close ... actually, every valid user already HAS an SMTP e-mail address, and
we create a POP mailbox for those whose e-mail is managed locally.  The
problem isn't creating those things, but in mapping from the e-mail address
to the mailbox.

As you have noted, "the domain part of the e-mail address is really only
used to decide if the e-mail is handled by the local machine or not".  In
other words, James assumes that all addresses are effectively either
user@localhost or user@elsewhere.  James maps from SMTP addresses to POP3
mailboxes by effectively merging the POP3 and SMTP name spaces.

James ASSUMES that the user part of the SMTP address uniquely identifies a
mailbox in what is actually a global naming space spanning all domains for
which that server provides service.  This assumption is the crux of the
problem.  My proposal to fix that problem is to insert a mechanism to ASSIGN
a mailbox.  This provides a definable mapping from the SMTP name space to
the POP3 name space.

In the case of your example, each POP3 user FOR THE SERVER would be assigned
a mailbox IN THAT JAMES SERVER, and each SMTP user FOR A DOMAIN is assigned
an e-mail name AT THAT DOMAIN.   There is NOT a 1:1 relationship between the
two.

> This suggestion would require a fairly significant design change to James.

Actually, it deliberately requires NO significant design change to James.
In the case of a single domain, you need do nothing.  The current assumed
mapping can suffice.

Consider the proposal: a mailet provides a mapping (a forwarding) from
user@domain to localname@localhost (aka localname) or to another forwarding
address.  So assuming that a single James server provides service for
keyser.com, cnpa.org and columbiacc.org, then [EMAIL PROTECTED], [EMAIL PROTECTED]
and [EMAIL PROTECTED] can be mapped to jeff-keyser@localhost (aka
jeff-keyser), jeff-smith@localhost (aka jeff-smith), and [EMAIL PROTECTED]
(not a POP user; just forward his mail).

The essential change to James that I am proposing, at the moment, is that
(a) we have this sort of mailet (look at JDBCAlias), and (b) that we provide
support for the mapping table in the admin UI (forward <user@localdomain>
<user[@domain|localhost]>).  Now when I create a new user whose local
address is forwarded elsewhere, I say:

        map user@aLocalDomain user@aRemoteDomain

and when I create a user with a local mailbox I can enter:

        user aLocalName
        map user@aLocalDomain aLocalName[@localhost]

or perhaps:

        user user@aLocalDomain aLocalName

The latter shortcut is for convenience.  The earlier command that JUST
creates a local user could be renamed to indicate that its essential feature
is to create a new mailbox.

Although I mention the JDBCAlias mailet as an example, the same mapping can
be implemented by a persistent mapping object stored in the file system.
UserRepository remains unchanged, since it represents users who have LOCAL
storage, and is really on the POP3 side of the server.

Is this clearer?

        --- Noel


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to