Hi All -- I must apologize for suscumbing to a terrible urge to be
sarcastic in my response to Bob, which included the facetious remarks
about "lets abandon discussion of models and just CUT CODE".
I was really trying to burlesque what I was seeing.
However, now I want to try to clarify a whole lots of things that have
come out of it. Actually, this is very relevant to a side discussion
that is going on about Delivery and Receipt Notifications, and to some
extent, this is a thread of discussion that escaped the ietf-ack's
So, to the meat:
The MTA/UA model is only that -- and it is a very abstract functional
service model at that. But, it is a clear analogy to postal services.
Its origins are to be found in the internet, and are in fact embodied
in MMDF and MH as an MTA/UA matched pair. MMDF was, in its early
stages (circa 1979) an experimental prototype for the IFIP WG 6.5
Pre-Standards modeling work that led to X.400. It was in the IFIP WG
6.5 work that the MTA/UA boundary surfaced as a critically useful
abstraction to help define communications behavior between abstract
services, however they may actually be implemented.
The fact that some internet (then it was ARPANET) mail systems did not
(and still do not) actually realize this separation within the code
has never been a major issue. It is not even an issue in X.400!
X.400 does not say anything about how mail moves from the MTA to a
co-resident UA, except to state that it is a "LOCAL MATTER".
As for P7 (the MessageStore/RemoteUA) protocol, this is also not
required when the MS and a UA that uses it are co-located in the same
system. It is a local matter again. Teh same is true between the MTA
But, if you separate the UA from its MTA with a network connection,
then you should use P3 between them, to conform with the standard.
If you use something else between them, and no one outside your own
operations can detect how you do it, or detect any violation of the
standards, then you have no problems, and the protocol police will
The key here, as John Klensin points out, is that the abstract
functional services that are visible in the network are what is
important. How an implementation actually does it internally is a
local matter, and is in fact defined in the standards to be out of the
scope of the standards.
Now, where I think John and I might disagree, is that I believe that
RFC821/822 come incredibly close in their parallels to X.400 P1/P2 as
abstract functional service definitions.
And, I want to be sure that what we are doing here now adheres to this
established abstract functional service model. This is the primary
consistent thread of all my remarks and arguments. Perhaps this needs
to be expressed in an RFC, if it is too much unsaid and not understood
in the internet.
Now, something that came to me as a bit of a shock the other day is
that SENDMAIL (bless it) is in fact a blatant combination of MTA and
UA functions, in a single integrated system. Well, my first reaction
was to think that this is a violation of the model, but my second and
more rational reaction was to realize that our only problem with this
is that too many people say
"If SENDMAIL DOES IT, IT MUST BE AN MTA FUNCTION!"
Well, this just ain't so. And it does not matter at all whether
SENDMAIL embodies some of each, as long as we don't let this confuse
us about the MTA/UA abstract service model.
And, the same goes for any other implementation!
My conclusion from all this is that this MTA/UA separation model is
truly critical, and that many of our arguments in this list and in
ietf-smtp, and now in the ietf-ack discussion, are caused by lack of
agreement on the basic model!
SENDMAIL/RMAIL is not a model. It is only one implementation of the
MTA/UA model, and its structure does not tell us what is in the model.
The same can probably be said for 90% of all the intergated MTA/UA
implementations of RFC821/822 or X.400 P1/P2/P3/P7.
BTW, as an aside, I should note that POP3 is the Internet moral
equivalent of P7, and provides services that are quite close to those
of the X.400 MS. POP3 also adheres very closely to the MTA/UA Model,
just as P7 does.