[net.mail] More thoughts on mail relays

zben@umcp-cs.UUCP (Ben Cranston) (10/11/85)

Since I have had the luxury of doing little else but electronic mail for the
past few years, and have been looking at it from a fairly global viewpoint
(by this I mean avoiding "unix tunnel vision") I thought to clog up the net
with a few random thoughts.  If this seems a bit disconnected, consider that
I have just read roughly 300 messages from this newsgroup, over the past
eight hours or so.  (Catching up is h*ll).

One: since there are user agents and mail programs, there may be one or two
levels of translation between what the user types to the mail agent in the
way of addresses and what actually comes out the wire to the next site.  One
level of translation is done somewhere between the user agent and the mail
delivery program, another is typified by the IBM VM/CMS NAMES facility or the
VMS names thing - a mapping between a private universe of short rememberable
names and the ugly strings we use to get from machine to machine.

Even though we are a BitNet and ARPA Internet site, and not a UUCP site
(I speak of UMD2.UMD.EDU/UMD2.BITNET here), I happen to like the bang syntax.
Since I am a Christian, I read from left to right.  I think the RFC822 forward
syntax (@one,@two:user@three) is a real crock!  The user%three%two@one syntax
requires me to read from right to left.  If we were doing things from a
cognitive engineering/user friendly viewpoint, we would have the user talk
bang to the mail agent, and have the delivery program do whatever translation
is required for whatever connection we FIRST send the message through.

In this spirit the examples given below are given in bang syntax, please feel
free to translate to whatever you happen to like.

Two: with mixed-syntax addresses like one!two!user@three there will always be
the parse ambiguity.  One of the terrible things about electronic mail is 
that to create a workable multihop address one needs to cobble together a form
that not only is acceptable to the source and destination machines, but also
to EVERY MACHINE THAT THE MESSAGE MUST PASS THROUGH!  Given this constraint,
I have no choice but to argue that ANY ADDRESS, AT ANY TIME, MUST BE CODED IN
ONLY ONE SYNTAX.  That is, we declare mixed mode addresses like the above as
invalid.

Three: now, let us contemplate a complex address that passes through two relays
(inter-network gateways, er, ah, you know what I mean):

    gun!bullet!arpauucp!elf!wizard!uucpbnet!blue!user

Note that though this address is given in bang format, gun and bullet are
ARPA Internet sites, arpauucp is a gate, elf and wizard are UUCP sites,
uucpbnet is a uucp to BitNet gate, and blue is a BitNet site.  Presumably
when the user at an ARPA Internet site types this address, the software
translates it to:

    @gun,@bullet,@arpauucp,@elf,@wizard,@uucpbnet:user@blue

before putting it out into the ARPA Internet.  I also assume that at the
gate site arpauucp the remainder of the address gets rewritten as:

    elf!wizard!uucpbnet!blue!user

and that at the gate site uucpbnet the remainder of the address becomes:

    user@blue

again.

There are those here on the net who claim that ALL sites in the address must
be known to EACH site in the path.  Perhaps to substitute official names, as
the 82x standards claim must be done in intersite communications.  Perhaps
even the authors of the RFCs thought that they could subsume UUCP and all the
other networks within the domaining scheme.  Regretably this is not now the
case, and given the choice between a strict interpretation of the standard
and having things WORK, I am inclined to bend the standard just a little bit.

Some people tie the site lookup function to the exact syntax.  If it is
decided that the address is in bang form, they look in the UUCP list, if it
is in @ form they look in the Internet list, etc.  The problem with this
approach is that it REQUIRES mixed-form addresses, and we are back to the old
"do we parse ! or @ first" question.

As an example to clarify these viewpoints, some would claim that the address:

    @gun.arpa,@bullet.arpa:user@blue.bitnet

is prima facie illegal because .bitnet is not a recognized ARPA domain.
While this may be true given a strict reading of the standards, and will work
well if there ever IS a real .bitnet domain with an accessable nameserver,
just by bending the rules a bit we can accept it now, and have mail WORK.

Others cry "cruft" at this address:

    @gun,@bullet,@elf,user@wizard

and would require the address be given as:

    @gun:elf!wizard!user@bullet

so that "elf" is looked up in the UUCP list and not the ARPA list.

By taking the viewpoint that addresses are syntactically changed at gates,
but that site names in the list need not be known at the gates (except for
the first one, the one we will forward to, of course), we get the best of
both worlds.  What this boils down to is this:  if we ever WERE to want to
completely process an address, looking up the sites, the universe or set of
default domains or whatever would change at the point in the address a gate
was mentioned.  But, if we leave the substitution of the official name, the
only reason we really need to LOOK at the site names, to be done incrementally
at each gate, we never NEED to process site names beyond the first one.  As
an example:

    @gun.arpa,@bullet.arpa:user@blue.bitnet

the software at "gun" never NEEDS to lookup "blue.bitnet".  It might very
well substitute "bullet-m16" as the official name for "bullet", but it can
leave the lookup of "blue.bitnet" to site "bullet", which as a gate is
presumed to have access to the .bitnet name list.

Last: there seem to be sites out there that love to talk to multiple
networks, but are less sanguine about playing by the rules.  Every time a
message comes through my Arpa-BitNet gateway with a header field like:

From: Joe Luser <luser@podunk.UUCP>

my software drops a five page print file complaining that it can hardly cast
this address into a BitNet address when it doesn't know ANYTHING about the
.UUCP domain.  Whatever cutesy site let this monstrousity into the Arpanet
*SHOULD* have rewritten the address as something like:

From: Joe Luser <@cutesy.ARPA:luser@podunk.UUCP>

In which case my software would be satisfied that it knows how to get to
"cutesy.ARPA" (never bothering trying to lookup "podunk.UUCP") and finally
would rewrite the field something like:

From: Joe Luser <luser%podunk.UUCP%cutesy.ARPA@umd2>

and replies would actually work!  If somebody replied to the address, it
would come back to me as:

    luser%podunk.UUCP%cutesy.ARPA@umd2

I would rewrite it as:

    @cutesy.ARPA:luser@podunk.UUCP

"cutesy" would rewrite it as:

    podunk!luser

QED.

I am not holding my breath.  Sigh.  Well, at least I get three or four
random samples a day of what my software is REALLY doing.  Good for debugging
and riding herd on the d*mn thing.
-- 
Ben Cranston   ...seismo!umcp-cs!zben      zben@umd2.ARPA

scott@cstvax.UUCP (Scott Larnach) (10/25/85)

>Two: with mixed-syntax addresses like one!two!user@three there will always be
>the parse ambiguity.
> [ ... ]
>Given this constraint,
>I have no choice but to argue that ANY ADDRESS, AT ANY TIME, MUST BE CODED IN
>ONLY ONE SYNTAX.  That is, we declare mixed mode addresses like the above as
>invalid.
>
>Ben Cranston   ...seismo!umcp-cs!zben      zben@umd2.ARPA

Yup, I agree. WITHIN any network, an address should be in the style
standard to that network. All the three addressing styles I have come
across (uucp, 822, Greybook (UK)) have standard ways of specifying
source routes (ok, 822 is a bit funny). Conversion is possible (without
going in to the limitations of particular mailers). Then "all" you need
to do to ensure that routes work is to require gateways to properly
convert between those styles.

Now there's the rub. I once made this suggestion publicly and I got
lots of people mailing back saying you're living in a fantasy world
chum, you'll never get the gateways to come round to doing that.
But I can't help thinking it would be worth the effort. The alternative
seems to be the same old hassles dragging on & on & on....
-- 
Scott Larnach			Janet: scott@uk.ac.ed.cstvax
Edinburgh Unix Support		Arpa:  scott@cstvax.ed.ac.uk
Tel:	+44 31 667 1081 x2629	Uucp:  scott@cstvax.uucp

jer@peora.UUCP (J. Eric Roskos) (10/27/85)

I see that in the 2 weeks that I've been off converting MH.5 to run under
System V (and our site has been converting itself to System V, for that
matter), despite my exhortation that people not followup on my article
with reiterations of things said in the past, people have continued to
repost the same ancient, tired arguments.  Except those who have decided
to resort to ad hominems by claiming I don't know the definition of AI
(I used to work for an AI software company, so naturally I am hopelessly
out of touch with what academia feels is the definition, regardless of
what people who have just encountered me may think of my position in that
regard (-:).

We have seen reiterated the statement that routing strings with "@" in
them are "dangerous" (the point at which Mark Horton and I reached an
impasse on this debate by mail, incidentally) because they are
"ambiguous".  In fact, that seems to be the "jist" of all the counter-
arguments regurgitated.  We have also seen disconnected statements that
say "!-precedence is preferable in the UUCP network" and then go on to
assert, without intervening premises, that therefore "@" in a routing
string should be "declared invalid".

I've only seen one marginally close counterargument, and that is the one
that argues that @ should be given precedence for "consistency".  Well,
that is fine in the theoretical world, but not in reality; as I have
pointed out to some of you who have recently sent me mail, RFC822 does not
require consistency, however, for the message envelope, and the attempts
to force consistency retroactively on the UUCP network are what I am claiming
is itself dangerous.

Now, for those of you who insist on making their arguments by quoting Mr.
Rogers or popular comedians, let me point out that the last clause on the
above sentence is a proposition which I am about to informally demonstrate.

Prior to the introduction of software which was intended to integrate the
networks, the character "@" had no significance as a distinct token in the
UUCP routing language.  [An aside for the stubborn: the UUCP routing language
is the language in those files named "D.mysiteX123AB", or
"X.mysite1234AB", in the UUCP queues.  It has nothing to do with the plain
D. files containing the messages which, except for routing stamps at the
front, most of us (including me) agree should be RFC822-compliant.]
Therefore, one would send mail destined for a "gateway" through using
the "!" syntax, with a destination mailbox name looking something like
"joe@bigvax.ARPA".  Now, if your average UUCP site tried to send to a
mailbox with that name, it would go looking for a user in /etc/passwd with
that name, wouldn't find one, and would reject the address as erroneous.
However, some sites, the gateways, were smarter, and would treat it as an
address on another network, which they would send it to.

Then someone produced a product which they introduced into a software
distribution, which was intended to help these gateway sites.  But it was
distributed to everyone, and soon many people installed it, whether they
needed it or not.  And furthermore, AND THIS HAS BEEN MY POINT, they in-
stalled it in violation of what has come recently to be called Lauren's
rule, because an arbitrary site out there, say mine, whose users had
been trained to use the old syntax, couldn't any more, because suddenly
that site was *no longer accepting the syntax that had formerly been in use*.
It was accepting a *new language* entirely.

Recent arguments have overlooked this; in typical self-centered fashion,
they say instead "now that I've installed @-precedence transport agents
here, *that* will be the standard; all the old sites just accidentally
didn't know about @, and they are wrong."

In fact, however, standard AT&T Unix mail still does not give @-precedence.
It probably won't do so until AT&T either adopts Sendmail, or Smail, or
another of the new smart mailers.

Ironically, I guess, I am *not* making my argument from a similar
position, since our mailer here can handle either syntax, simultaneously,
and in fact presently does: it uses "@" when going through mailers at
certain industrial sites which don't recognize the new syntax, and uses
"!" when going through some of the newer sites, particularly Seismo.
(Presently it can't do this when using the probabilistic gateway selection
scheme for distributed nameservers, but that is a present limitation, not
a feature.)

The real problem here, I've recently come to conclude, is a psychological
one.  Sendmail is so difficult to reconfigure that now that most sites have
some semblance of a working sendmail.cf file, everyone is in grave terror
of ever having to change it.  And, ironically too, the approach I have
been proposing would not require changing any sendmail.cf files!  It would
require sites that are currently in violation of Lauren's rule replace
their sendmail-invoking rmail with a slightly "smarter" rmail that didn't
give @-precedence, voluntarily, if they wanted to comply.  And, even yet
more ironically, the UUCP Project is about to release just such a product,
which could provide just that facility; but instead it provides @-precedence.

Actually it's true that this has become a "religious debate".  My site can
handle either syntax, in compliance with the original UUCP routing
language; sites that install smail will handle it just fine, as will
Sendmail sites.  The only ones that won't are the ones with "dumb mailers,"
such as mailx or plain Unix mail, where the users will suddenly have to
be instructed to write their routing strings slightly differently, or edit
their alias files if they have them.

Well, my religion says you should be kind to people, and my argument is
largely one from kindness and upward-compatibility.

That's all I have to say on the matter, then.  Maybe I should end with an
ad hominem!  But no, this is a "religious" debate, so I will turn the
other cheek and all that.

It is a sad thing, though, that I have seen so little logic (in the form
of extended argument) and so much regurgitation of simple facts and
superstitions.  Also that the supporters all write by *mail*, while the
ad-hominem detractors post news messages!

So maybe I can get back to work now... and if users at dumb-mailer sites
grumble and complain, I could always smugly say "GO NEM!"  I guess upward
compatibility is our middle name (not "who" :-)).
-----------
Disclaimer: The above does not necessarily reflect the opinion of the
Perkin-Elmer Corporation.  Furthermore, I am not involved in the implem-
entation of present Perkin-Elmer mail products.

NEM is a trademark of the Perkin-Elmer Corporation.
-- 
Shyy-Anzr:  J. Eric Roskos
UUCP: Ofc:  ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jer
     Home:  ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jerpc!jer
  US Mail:  MS 795; Perkin-Elmer SDC;
	    2486 Sand Lake Road, Orlando, FL 32809-7642

hokey@plus5.UUCP (Hokey) (10/31/85)

JER, I'm sorry you spent 2 weeks making MH.5 run under SysV.  MH.6 requires
almost no effort, and should be out very soon.

You also state that after privately debating with MRH the viability of hybrid
routes (due to the ambiguity problem), the two of you reached "an impasse".
Gee, whiz!  I tried to explain the problem to you as well.  The conversation
sort of died on the vine.  I wonder who else has tried to sway you toward
our perception of reality.

  Problem #1:  ! vs. @ parsing ambiguity in the UUCP transport layer.
  Solution: resolve the ambiguity
    Implementation #1: Permit hybrid routes, and make everybody parse them
      the same way.
    Problems: Doesn't work at gateways.  Requires smart mailers in lots
      of places, or requires users to know how to specify the route.
      Falls apart when a site decides to become a gateway, because the
      routing rules change for everybody who passed mail through that site.
      Requires *everybody* who is accepting either ! or @ mail to make sure
      they follow the "rules", and possibly change the way they parse.  This
      last bit means work for the admin, and an overall education program for
      lots of people.  It has not been demonstrated that this implementation
      is even workable, due to the problems of routing *through* gateway sites.
    Implementation #2: Permit hybrid routes, and make every site which accepts
      ! or @ make an "intelligent" choice about what the sender really wants.
    Problem:  Pathparse has't been released yet.  When it is released, it
      will require an "appropriately" sized database, which must be maintained.
      Maintenance is not a big issue.
    Implementation #3: Prohibit hybrid routes.
    Problem: Unless a site has a mailer which can handle minimal routing, users
      who wish to *initiate* (*not* reply to net articles) have to know how to
      specify the path to the nearest smart machine.  This implementation has
      the dubious advantage of breaking things no more than once.  It brings
      to a head the issue of education.

  Problem #2: Many sendmail sites *always* prepend their name to the From: line.
   This is especially nasty since @ has clear precedence over ! in this field,
   and changing a@b to c!a@b means b->c->a, *not* c->b->a.
  Solution:  Find them, and fix them.
  Implementation: Get the offender to correct it.
  Extra Protection: Keep the From: line in ! format in UUCP land.  This way,
   sites which prepend their name will take b!a and produce c!b!a or b!a@c,
   either of which is "correct".
  
  The To: line is used by mailers to build the recipient list.  This includes
  "traditional" dumb mailers (binmail).
  Problem #3:  Dumb mailers will produce hybrid routes if any recipient has
   an @ in his address.
  Solution:  Keep recipient fields in ! format.
  Implementation: Do it!

Anyway, you go on to state (correctly, I believe) the problem lies with the
relatively difficult job of making sendmail work in the UUCP environment.
Yes, if people didn't run sendmail, we wouldn't have the problem.  However,
people use sendmail.  (Unfortunately, the major solutions you propose *require*
people to change their software.  Additionally, I *think* your solutions will
not work at gateway sites.)

Sendmail.cf files are not easy for everybody to handle.  I know I have
problems with them.

HOWEVER, newer versions of sendmail make it *much* easier to write config
files, and several people are writing versions which are capable of
supporting a wide variety of system configurations with very little
maintenance effort.

I have it on good authority that sendmail source can be put on any system
licensed for SysV or 4.2 (or later) BSD.  These sources seemed to think
that there is a 99% chance that sites with 32V, V7, or SysIII licenses
would also be able to have sendmail.  4.1BSD was not mentioned, but I doubt
there would be a problem.

-- 
Hokey           ..ihnp4!plus5!hokey
		  314-725-9492

jer@peora.UUCP (J. Eric Roskos) (11/01/85)

> JER, I'm sorry you spent 2 weeks making MH.5 run under SysV.  MH.6 requires
> almost no effort, and should be out very soon.

You've obviously never tried to order an outside piece of software from
within a large software organization!  It was no problem, really... much
of the time was spent in porting our router and nameserver.  I had promised
earlier to write an article on porting MH.5, but then Mr. Rose wrote and
told me that MH.6 was coming out soon, so I decided not to.

Anyway, to turn to the issues you raised...

I can certainly appreciate the arguments against using "@'s" in UUCP
routing strings.  I strongly disagree with calling them "hybrid addresses,"
however, because they are not addresses, they are routes, and they are
not hybrid, since "@" doesn't mean anything to any but a few modified Unix
sites.

> I wonder who else has tried to sway you toward our perception of reality.

No one.  The funny thing is, it seems to be a vocal minority who advocate
giving "@" special status in the routing language.  Thus the only people
who have tried to convince me (other than the folks at Seismo) are the
ones who have written in here.

>   Implementation #1: Permit hybrid routes, and make everybody parse them
>     the same way.
>   Problems: Doesn't work at gateways.

It does, too.  But we've been over this so many times, algorithms and all,
that I'm tired of reiterating it.

>   Requires smart mailers in lots of places, or requires users to know
>   how to specify the route.

No it doesn't... it doesn't require any more smartness to write in one
routing language than the other... what's the difference between (assuming
a site that only has Unix mail and no router) writing

	petsd!vax135!ucbvax!sam@slowvax.ARPA
or
	petsd!vax135!ucbvax!slowvax.ARPA!sam

It just involves permuting the last two name tokens, and replacing the last
@ with a !.

>     Falls apart when a site decides to become a gateway, because the
>     routing rules change for everybody who passed mail through that site.

No it doesn't... this site presently is not a gateway, however it is a
domain nameserver and a site many people route through here in Florida.
However, I wrote the router with the intent that someday it would become
a gateway, since we have machines here that are not on the UUCP network.
If we ever make that conversion, I will have to add the change to rmail
which the person at NCR in Torrey Pines recommended awhile back, whereby
the domain table also specifies the program to run to exit the UUCP network
(there's even an unused field in the domain table for that purpose... many
people have been trying to guess what it's for).  Presently it's much
simpler; since the original code didn't support the ..!slowvax.ARPA!...
syntax (although I agree that that is a good addition) it was not necessary
to give any special handling, so when the "!'s" ran out, I would route it
out of the network and into the inter-network delivery program.  The model
I presently use is that the local mail system is a separate network;
under this model, all sites are "gateways", and this is entirely reasonable,
very regular and orthogonal.  With the new syntax, when it does a domain
lookup it needs to also decide whether it's time to leave the UUCP network,
which there's a field but no code for yet.  But the syntax will not change.

>  Requires *everybody* who is accepting either ! or @ mail to make sure
>  they follow the "rules", and possibly change the way they parse.  This
>  last bit means work for the admin, and an overall education program for
>  lots of people.  It has not been demonstrated that this implementation
>  is even workable, due to the problems of routing *through* gateway sites.

In fact, this is exactly the problem with the no-@ approach.  Presently
everyone follows the "rules" automatically, except at a few sites; and
Gene Spafford just posted a Sendmail configuration file that makes the
sendmail sites work too.  However, now it is being proposed to distribute
a new program that imposes new rules (an excellent program, I understand,
and not one I am criticizing except on this one minor point).

There also should be no problem with routing through gateway sites.  The
problem you are alluding to, I think, is the one in which some gateway
sites route all their mail through Sendmail, and have sendmail always
give "@" precedence.

As for requiring additional education for people... people are now using
a particular syntax to reach the ARPAnet, for example.  Soon it won't work
any more, and they will have to be >reeducated<.

> Implementation #2: Permit hybrid routes, and make every site which accepts
> ! or @ make an "intelligent" choice about what the sender really wants.

But not an artificially intelligent choice, you understand... :-)

>   Problem:  Pathparse has't been released yet.  When it is released, it
>     will require an "appropriately" sized database, which must be maintained.
>     Maintenance is not a big issue.

I've stated repeatedly here that the *sender* should write RFC822 addresses,
which should be parsed with "@" precedence, and that sites along the way
should give "!" precedence.  Pathparse is a very good enhancement that
allows the user to have more flexibility in writing what he or she wants to
be the destination of the message, but I am making an argument on behalf
of sites that have no special software at all.

> Extra Protection: Keep the From: line in ! format in UUCP land.  This way,
>  sites which prepend their name will take b!a and produce c!b!a or b!a@c,
>  either of which is "correct".

I don't like this approach, and I wish we could discuss this, or some other
topic, instead of going over and over the @-precedence issue.  Presently the
many strange ways sendmail sites macerate the routing stamps on the fronts
of the messages cause a lot of problems generating replies.  If you are
going to argue in favor of RFC822 compliance (which I think you should),
then you shouldn't compromise on these issues.

> I have it on good authority that sendmail source can be put on any system
> licensed for SysV or 4.2 (or later) BSD.  These sources seemed to think
> that there is a 99% chance that sites with 32V, V7, or SysIII licenses
> would also be able to have sendmail.  4.1BSD was not mentioned, but I doubt
> there would be a problem.

I don't see the point to this.  Why would other sites want to install
Sendmail?  I recall what they told me when I first started working on the
mail system here... "Don't even think of installing Sendmail."  Why should
your average site install sendmail?  It was written for use at gateways.
I get all the advantages of Sendmail, even a nice "Received:" line on the
message, with much simpler software, since I don't need to make any of the
transformations that Sendmail makes in the headers.  If I was at a gateway,
and the other network(s) didn't take the RFC822 syntax, then I would probably
be interested in Sendmail.  (Though I wouldn't change the current transport
software for UUCP.)


Now let's talk about something new.
-- 
Shyy-Anzr:  J. Eric Roskos
UUCP: Ofc:  ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jer
     Home:  ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jerpc!jer
  US Mail:  MS 795; Perkin-Elmer SDC;
	    2486 Sand Lake Road, Orlando, FL 32809-7642

hokey@plus5.UUCP (Hokey) (11/03/85)

JER, you are certainly correct that this issue has been "discussed" far
too much.  However, there are some points you (re)state to which I choose
to examine.

>I can certainly appreciate the arguments against using "@'s" in UUCP
>routing strings.  I strongly disagree with calling them "hybrid addresses,"
>however, because they are not addresses, they are routes, and they are
>not hybrid, since "@" doesn't mean anything to any but a few modified Unix
>sites.

Are you saying that there are only a few sites running sendmail?  Are you
inviting them to identify themselves in order to substantiate their number?

>>   I say:
>>   Implementation #1: Permit hybrid routes, and make everybody parse them
>>     the same way.
>>   Problems: Doesn't work at gateways.
>
>It does, too.  But we've been over this so many times, algorithms and all,
>that I'm tired of reiterating it.

Does not!  So there.  Here is a contrived example:  wucs!kurt sends me mail
via seismo.  Seismo puts the thing into 822 format before sending it to me.
I see wucs!kurt@seismo.  I reply, and being a good bangist, send it to wucs,
which then sends the mail to kurt@seismo.  Wrong.  I speak with both wucs
and seismo.  How do I choose?  I don't recall *ever* seeing any real-world
solution to this problem.

This problem has been acknowledged for years (since before you or I got
into this mess).  One reason so few discuss it is because the Old Timers
are even more burned out than we are.

>... what's the difference between (assuming
>a site that only has Unix mail and no router) writing
>
>	petsd!vax135!ucbvax!sam@slowvax.ARPA
>or
>	petsd!vax135!ucbvax!slowvax.ARPA!sam
>
>It just involves permuting the last two name tokens, and replacing the last
>@ with a !.

You are semantically disambiguating the beast.  How do you know that
ucbvax!sam didn't route the mail via slowvax.ARPA to vax135?  The assumption
you make says it all.  What happens when/if you become a gateway which
speaks to Arpa?  At that time, you will suddenly be trying to send mail along
the route slowvax.arpa->petsd->vax135->ucbvax->sam.

>> Extra Protection: Keep the From: line in ! format in UUCP land.  This way,
>>  sites which prepend their name will take b!a and produce c!b!a or b!a@c,
>>  either of which is "correct".
>
>I don't like this approach, and I wish we could discuss this, or some other
>topic, instead of going over and over the @-precedence issue.  Presently the
>many strange ways sendmail sites macerate the routing stamps on the fronts
>of the messages cause a lot of problems generating replies.  If you are
>going to argue in favor of RFC822 compliance (which I think you should),
>then you shouldn't compromise on these issues.

RFC822 compliance is swell if that is what you want.  It doesn't really matter.
Since RFC822 compliance can't be enforced on arbitrary UUCP sites, we have to
have a way to transport mail between sites.  The *only* thing I am advocating
is the use of strict bang format when shuffling mail between UUCP sites.
If you choose to take the mail and make it RFC822 compliant where you are,
that's your business.  Please make the mail look like ! mail when it leaves
your scope of control when passing it to a UUCP neighbor.

>> I have it on good authority that sendmail source can be put on any system
>> licensed for SysV or 4.2 (or later) BSD.  These sources seemed to think
>> that there is a 99% chance that sites with 32V, V7, or SysIII licenses
>> would also be able to have sendmail.  4.1BSD was not mentioned, but I doubt
>> there would be a problem.
>
>I don't see the point to this.  Why would other sites want to install
>Sendmail?

You raise a very good point.  I thought about it, and came up with the
following benefits of using sendmail:

	user aliases (not everybody can afford the 3-4 Mbytes occupied
	by all the MH software), mail to files, mail to pipes, decent
	forwarding capabilities, and local "services" (sending mail to
	the lineprinter, for example).

Granted, much of this *could* be done by dedicated, smaller programs.  I
haven't seen them yet. I have heard rumors about them, but that's all.

-- 
Hokey           ..ihnp4!plus5!hokey
		  314-725-9492

jer@peora.UUCP (J. Eric Roskos) (11/04/85)

> JER, you are certainly correct that this issue has been "discussed" far
> too much.  However, there are some points you (re)state to which I choose
> to examine.

Gee, Hokey, if you are going to introduce some new stuff, that's fine.

> Are you saying that there are only a few sites running sendmail?  Are you
> inviting them to identify themselves in order to substantiate their number?

Only if you let all the non-sendmail sites do so too... :-) it's a matter of
proportion, not numbers.

> Does not!  So there.  Here is a contrived example:  wucs!kurt sends me mail
> via seismo.  Seismo puts the thing into 822 format before sending it to me.
> I see wucs!kurt@seismo.  I reply, and being a good bangist, send it to wucs,
> which then sends the mail to kurt@seismo.  Wrong.  I speak with both wucs
> and seismo.  How do I choose?  I don't recall *ever* seeing any real-world
> solution to this problem.

Seismo did it wrong!  (Now, don't get mad, Seismo-folks, I didn't say you'd
really do it this way...)  They should have written kurt@wucs.UUCP.  It's
the responsibility of the nameservers on the path back to figure out how
to get it to wucs.  The fact that it came through Seismo coming here is of
no interest at all; besides, you can look in the Received: lines if you
want to know.   The From: line should tell the mailbox name and the system
the message came from; that's all you know to reply, and all you need to
know.

>>       petsd!vax135!ucbvax!sam@slowvax.ARPA
> You are semantically disambiguating the beast.  How do you know that
> ucbvax!sam didn't route the mail via slowvax.ARPA to vax135?

Because, if it's in the UUCP routing strings, it's not an RFC822 address,
and so "!" has precedence.  If it's in the From: line of the message, it
is an RFC822 address (since it's in the message text, which is what RFC822
is for), and so "@" has precedence.  You're right; unambiguous grammars
generate syntactically unambiguous languages, and the semantics of the
tokens are already unambiguous, so the semantics are unambiguous.

{What? Don't like two different languages?  What's all this "RCPT TO" stuff
I keep reading about here?}

> Since RFC822 compliance can't be enforced on arbitrary UUCP sites, we have to
> have a way to transport mail between sites.  The *only* thing I am advocating
> is the use of strict bang format when shuffling mail between UUCP sites.

Me too!  But here again, standard UUCP mail doesn't know anything about
anything in the message text except for "From_" lines.  However, the RFC822
does let you rewrite the headers "to force data to conform to a network's
local conventions".  Thereby "the 'next' network's local idiosyncrasies are
imposed on the message".  I wish we could stay away from situations, in the
UUCP mail network, in which machines have to read the headers on the
message text, since we started out with only one (very hard to deal with)
such header, and could put on clean addresses without causing any problems.
However, I won't argue with you on this; our mailer handles it fine, and
I don't have to deal with yours!  When it leaves here, actually it has
both... the RFC-822 address in the <route-addr>, and the UUCP path that
was used in the <phrase>.  (Not in the From: line, though.  How do I know
the path from there to here?) Except when I don't get replies, which
is what the mung-resistant (not recognized by Sendmail) headers are for.

>       user aliases (not everybody can afford the 3-4 Mbytes occupied
>       by all the MH software), mail to files, mail to pipes, decent
>       forwarding capabilities, and local "services" (sending mail to
>       the lineprinter, for example).

MH.5 supports all of these.  However, you're right, the software is very
large; but the program that does all it (post) is probably much smaller
than Sendmail.  (Actually I don't know if they handle "mail to pipes" or
not.)

Anyhow, what I am arguing for/about here are not the programs in the roles
sendmail and post occupy, but rather the simple transport-level software.
Those can be, and are, very small.
-- 
Shyy-Anzr:  J. Eric Roskos
UUCP: Ofc:  ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jer
     Home:  ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jerpc!jer
  US Mail:  MS 795; Perkin-Elmer SDC;
	    2486 Sand Lake Road, Orlando, FL 32809-7642

greg@ncr-sd.UUCP (Greg Noel) (11/06/85)

I don't want to enter this philosophical debate; I think the two sides
are both right and wrong, and that the discussion will eventually reveal
that they are trying to do the same thing different ways, and that the
cross-fertilization of ideas will be mutually beneficial.  But I do want
to point out one misconception that shows that the issue is more subtle
than meets the eye.

In article <1761@peora.UUCP> jer@peora.UUCP (J. Eric Roskos) writes:
>  ..... what's the difference between (assuming
>a site that only has Unix mail and no router) writing
>
>	petsd!vax135!ucbvax!sam@slowvax.ARPA
>or
>	petsd!vax135!ucbvax!slowvax.ARPA!sam
>
>It just involves permuting the last two name tokens, and replacing the last
>@ with a !.

No, this doesn't work.  As a case in point, Peter Honeyman sent me a note
last week.  I presume that he just used the reverse path of a news item
rather than calculating the path, since the message went from his machine
(down) to princeton to seismo, then over the ARPAnet to noscvax, then via
UUCP to me.  If you look at the reverse path at each point, it is:
    hop 1 -- down!honey
    hop 2 -- princeton!down!honey
    hop 3 -- princeton!down!honey@seismo.something.GOV
    hop 4 -- noscvax!princeton!down!honey@seismo.something.GOV
Applying the simple algorithm above, this reverse route becomes
    noscvax!princeton!down!seismo.something.GOV!honey
instead of the correct
    noscvax!seismo.something.GOV!princeton!down!honey
which would reach him, assuming that noscvax would handle this form of
address (I don't know if it does).  This is yet another case of the 
confusion between an \address/ and a \route/ and each network's bias
toward one over the other.  In terms of the discussion before us, what
would happen to your first example if vax135 suddenly became an ARPAnet
gateway?  Then it would have both @ and ! routing available, and it would
be able to reach \both/ possible destinations; it would have a hard time
deciding what to do with the message.  The point is that \you/ would have
to change how the mail is sent, based upon a change in status that you
can't control and of which you may not even be aware.

>However, I wrote the router with the intent that someday it would become
>a gateway, since we have machines here that are not on the UUCP network.
>If we ever make that conversion, I will have to add the change to rmail
>which the person at NCR in Torrey Pines recommended awhile back, whereby
>the domain table also specifies the program to run to exit the UUCP network

Hmmmmm.....  Thank you, I think, although that is not quite what I was
recommending -- I wanted the "UUCP network" just to be a special case of
a generalized network routing, handled by the same logic as all other
networks and invoked in the same manner as all other networks.  The thing
I was trying to emphasize was that network routing is something that can
be done pretty much indepentantly of the details of how the route is
physically implemented; in other words, to borrow an expression out of
context, that the physical transport layer is a implementation decision
that can be factored out of the choice of which link is to be chosen to
use for the message.

Perhaps when our copy of smail arrives (that's a \hint/, Mark), I will
have a chance to actually explore some of those ideas -- it may turn out
that the seperation between decision and implementation isn't workable
for some reason we don't yet know.

I didn't get a chance to proof this for spelling; I hope it isn't \too/
awful.
-- 
-- Greg Noel, NCR Rancho Bernardo    Greg@ncr-sd.UUCP or Greg@nosc.ARPA

hokey@plus5.UUCP (Hokey) (11/06/85)

Well, you may be in luck.  I am going out of town for a week, so I probably
won't see your followup!

>> Me:
>> Are you saying that there are only a few sites running sendmail?  Are you
>> inviting them to identify themselves in order to substantiate their number?
>
> JER:
>Only if you let all the non-sendmail sites do so too... :-) it's a matter of
>proportion, not numbers.

Did you mean to put the :-) at the end of the sentence?  If not, we should
all begin using Chinese because it will "normalize" communications.  After
all, it is a matter of proportion, not numbers.

>> Contrived example:  wucs!kurt sends me mail via seismo.  Seismo puts the
>> thing into 822 format before sending it to me.  I see wucs!kurt@seismo.
>
>Seismo did it wrong!  (Now, don't get mad, Seismo-folks, I didn't say you'd
>really do it this way...)  They should have written kurt@wucs.UUCP.  It's
>the responsibility of the nameservers on the path back to figure out how
>to get it to wucs.  The fact that it came through Seismo coming here is of
>no interest at all; besides, you can look in the Received: lines if you
>want to know.   The From: line should tell the mailbox name and the system
>the message came from; that's all you know to reply, and all you need to
>know.

I never said *where* the route/address was!  Seismo may have done a perfectly
legal thing and put a domain name (seismo) on a localpart (wucs!kurt).  This
could happen in the To: line, which would be used in a reply.  Let's say I
have a dumb mailer, but seismo doesn't know it.  This is one of the points
I have been making which you don't seem to see.  Furthermore, If I have a
dumb mailer, I *couldn't even reply* to "kurt@wucs.UUCP"!  This is another
of the points I make which you don't seem to see.  The fact that it came
through seismo is *very* significant if I have a dumb mailer and I want
to send something back without editing headers!

>> Since RFC822 compliance can't be enforced on arbitrary UUCP sites, we have to
>> have a way to transport mail between sites.  The *only* thing I am advocating
>> is the use of strict bang format when shuffling mail between UUCP sites.
>
>Me too!  But here again, standard UUCP mail doesn't know anything about
>anything in the message text except for "From_" lines.

Still wrong!  How many times must you be told about the To: line, which is
also used by binmail to handle multiple recipients?  If this line is a "simple"
@ address, dumb mailers can't reply.  If it is a hybrid, dumb mailers will
mess up the wucs!kurt@seismo example I gave above.

My primary goal is to have a reliable, verifyable mail transport system.
If we use strict ! format *within UUCP land* we *will not* have the transport
problems we have now.  Furthermore, it will be *easy* to identify sites which
do not conform to this scheme, making it even easier to track down sites which
can be potential troublemakers.
-- 
Hokey           ..ihnp4!plus5!hokey
		  314-725-9492

greg@ncr-sd.UUCP (Greg Noel) (11/12/85)

In article <912@plus5.UUCP> hokey@plus5.UUCP (Hokey) writes:
> ... (((Replying to JER, he makes the same point I made about
> disabiguating ! and @ addresses, then continues with a reply
> to another point))) ...
>You raise a very good point.  I thought about it, and came up with the
>following benefits of using sendmail:
>	user aliases (not everybody can afford the 3-4 Mbytes occupied
>	by all the MH software), mail to files, mail to pipes, decent
>	forwarding capabilities, and local "services" (sending mail to
>	the lineprinter, for example).
>Granted, much of this *could* be done by dedicated, smaller programs.  I
>haven't seen them yet. I have heard rumors about them, but that's all.

If you have heard rumors about them, I'd love to hear more.  I still
think that the domain server is the right place to do this, since it
is just a generalization of routing mail.  How easy would it be to
add this kind of thing to smail?
-- 
-- Greg Noel, NCR Rancho Bernardo    Greg@ncr-sd.UUCP or Greg@nosc.ARPA

jer@peora.UUCP (J. Eric Roskos) (11/14/85)

[Due to some problems with long text lines in the message I am replying to,
I can't include the article being commented on here.  See the references.]

Thank you for commenting on my discussion of routing languages.

After discussing the lack of progress on this subject with an
epistemologist over the weekend, I have come to realize that no more
progress in this discussion can be made simply because, whereas I
recognize the points you are making, you refuse to acknowledge mine, and
thus nothing I can say will change your mind.  In particular, you have
simply reiterated once again the old objection to having an "@" in the
path, which is founded in the unwillingness to acknowledge the fine
distinctions I have been trying for months to point out.

Go read some of Aho and Ullman's texts on formal language theory instead,
and think about the relative complexity of different classes of grammars.

Regarding your saying that what I had implemented was not what you wanted,
actually it is exactly what you wanted, but your feeling that it is not is
again founded in this same dilemma.  If the UUCP network were a more
sophisticated communications network, it would be readily apparent that
the distinction between the transport-level protocols and the applications
protocols in the user agent was a necessary one; however, the relative
simplicity of UUCP makes it easy in this network to integrate together
some few transport mechanisms.  In a more sophisticated network, this
muddying of the layers is not so easy to accomplish, and the confusion
that now exists could not have arisen.

I've said enough on a topic that is only of theoretical interest, so I hope
the above is sufficiently devoid of new material to discourage any further
debate at this time; our concepts of what constitute the "Truth" on this
issue are simply too disjoint to allow any further discussion.
-- 
Shyy-Anzr:  J. Eric Roskos, Ph.D. @ CONCURRENT Computer (A Perkin-Elmer Co.)
UUCP: Ofc:  ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jer
     Home:  ..!{decvax,ucbvax,ihnp4}!vax135!petsd!peora!jerpc!jer
  US Mail:  MS 795; CONCURRENT Computer Corp. SDC;
	    2486 Sand Lake Road, Orlando, FL 32809-7642

honey@down.FUN (Peter Honeyman) (11/16/85)

greg describes a gruesome case of hybrid address generation; let me
fill in the details.  i sent mail to nosc!greg, which pathalias turned
into princeton!seismo!nosc.arpa!greg.  nosc forwards greg's mail to
ncr-sd.  return addresses were generated as follows:

	host		return address
	----		--------------
	down		honey
	princeton	down!honey
	seismo		princeton!down!honey
	nosc		princeton!down!honey@seismo.css.gov
	ncr-sd		noscvax!princeton!down!honey@seismo.css.gov


note that seismo changed syntax; seismo is gatewaying into rfc-land,
where local-part@domain is required.  (incidentally, i concur with this
treatment.)  note that nosc \did not/ do it's part when gatewaying back
into bang-land, and further confused matters by using different host
names for arpa and uucp.

while pathparse disambiguates the resulting address with ease, nosc
would be a better citizen if it converted

	princeton!down!honey@seismo.css.gov

to

	seismo.css.gov!princeton!down!honey

when gatewaying to bang-land.

as to whether smail has the answer, i wouldn't expect much; the smail
crowd seems adamant about rejecting existing practices.

	peter

honey@down.FUN (Peter Honeyman) (11/20/85)

oh god damn it.  s/it's/its/.
	peter