Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/17/84; site gang.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!ihnp4!gang!hokey
From: hokey@gang.UUCP (Hokey)
Newsgroups: net.mail
Subject: Re: parsing uusite!local@domain-spec - a partial solution
Message-ID: <551@gang.UUCP>
Date: Sat, 12-Jan-85 02:03:41 EST
Article-I.D.: gang.551
Posted: Sat Jan 12 02:03:41 1985
Date-Received: Sat, 12-Jan-85 08:30:05 EST
References: <423@ucsfcgl.UUCP> <685@cbosgd.UUCP>
Organization: Plus Five Computer Services, St. Louis
Lines: 53

A hybrid route (a route isn't necessarily the same as an address) *should*
be unambiguous in an RFC822 header.  It isn't because most sendmail sites
treat the *address* specified in the From: and To: lines as a *route*, and
lop their name off the To: line and stick it back on the From: line.

This is totally malicious behavior.  It was thought necessary in the past
because people used "smart" user interfaces for replying to mail, and
since nobody had the implicit routing mechanisms in place to *route* the
mail to the *addresses*, they used the (munged) From: and To: *routes*
taken by the original mail to explicitly *route* the mail back to the new
recipient(s).  Great fun when somebody Far Away sends mail to you and a
local neighbor; replies from you to your neighbor and the sender both go
Far Away.  Subsequent replies bounce back and forth across an ever-increasing
*route*.

This routing problem has been solved by truncating the path to the farthest
"known" site.  This doesn't always work, however, because sites don't
always have unique names.  Edge-databases are swell for helping solve
this problem.  But I digress.

Quoting a hybrid route/address *in the header* is another acceptable
solution.  This works because the localpart has been distinguished
from the preceeding bang paths.  This may not be "good" 822 behavior,
but it *will* do the job.  Specifically, a!b!"c!d"@e *must* mean that
once the mail arrives at "e", it then goes to c!d.  "b" *can not* assume
that the "c" it know is the "c" known to "e", unless it has the connectivity
information for "e".  This is the edge database stuff again.

Note that unless the quotes are there, it is WRONG to mess up a "hybrid" in
the From: or To: lines by adding or deleting "mysite!" from the list,
because you may be changing the way somebody (rightly) expects to *route*
the message.

In the transport layer (uux, for example), quoting won't work because the
shell will strip them off, so there is no way to disambiguate the hybrid.
We have had several thrilling discussions about what to do with hybrids in
the transport layer.  I would like to reject them.  Others disagree.  We
all agree that we won't propagate the hybrid; the issue is whether or not
to accept them (from an arbitrary site.  The situation changes a bit if you
*know* the sender is an 822 site or a bang site, but that is another ball
of worms that also changes with Time and the Stars.).

Anyway, the place these monstrosities are most likely to emerge is when
replying to mail.  The "best" place to fix them is at the user interface.
The problem is also solved if people use "smart" mailers and/or tools
like pathalias or pathparse.  It would be of TREMENDOUS help if all the
sendmail sites left addresses in headers ALONE.

As one might suspect, this represents my perspective on the problem, and
there are people out there who disagree with me.
-- 
Hokey           ..ihnp4!plus5!hokey
		  314-725-9492