From ncr-sd!ncrcae!hubcap!gatech!amdcad!rpw3 Thu Mar 31 15:45:36 PST 1988

>In article <23560@hi.unm.edu> kurt@hi.unm.edu (Kurt Zeilenga) writes:
>-What is considered defacto standard way(s) of rewriting "a!b%c"?

The "%" is neither a "!" nor a "@", and thus is (or *should* be) left
alone by any of the transport/routing programs. It *may* be interpreted
by "local" mail delivery systems, and in particular is handled by "sendmail",
and many SMTP mailers (although seldom by non-sendmail UUCP mailers).

The defacto standard way, and the reason for the "%" at all (as opposed
to "@"), is to defer any rewriting unless you are system "a", in which
case you have already stripped the "a!", and are trying to deliver mail
to a local "user" named "b%c". At this point (and *only* at this point),
you notice the "%", and re-write "b%c" as "b@c", and then do whatever
you do locally with "@" addresses (including sending it back out again).

If you are not "a", you send it via UUCP to "a" (if you know how :-).

The purpose of the "%" is to avoid the ambiguity that arises with mixed
"!" and "@".

By the way, "%" is often used in the SMTP world. The address "b%c@a"
means exactly the same as above: If you are system "a", the "b%c" is
a "local-part", which you can (but are not required to) re-write to "b@c".
So, for example, in SMTP-land you can often send a "mail-echo" be sending
to "me%my-system@other-system".


p.s.
Note that the usual example, "a!b@c", *cannot* be parsed corectly unless
you know what kind of transport it came in on. If it came in on SMTP, then
"a!b" is the "local-part", and you should send it to "a" via UUCP. If it
came in on UUCP, then "b@c" is the "user", and you should send it to "c"
with SMTP (or maybe UUCP, depending on your mail system). Such a mixed-mode
horror should *never* be generated locally! If you *have* to send to a "domain"
via a UUCP first hop, then use full-bang domain addressing: a!c.dom.ain!b
Mailers such as "smail" understand this form.


Rob Warnock
Systems Architecture Consultant

UUCP:	  {amdcad,fortune,sun,attmail}!redwood!rpw3
ATTmail:  !rpw3
DDD:	  (415)572-2607
USPS:	  627 26th Ave, San Mateo, CA  94403


From ncr-sd!hp-sdd!hplabs!ucbvax!ucdavis!ccdan Thu Mar 31 15:45:58 PST 1988

In article <23560@hi.unm.edu> kurt@hi.unm.edu (Kurt Zeilenga) writes:
> What do you do with something like:
> 	a!b%c		(where a, b, and c could domainized)
> 
> I prefer:
> 	a!b@c		(deliver to c)
> because many folks here address things to a!b and I will forward them
> to d for forwarding to c.  So I give d a "a!b%c@d".   Now, I could give
> d "a!b@c@d", but that has two '@', or just "a!b@c".
> 
> What is considered defacto standard way(s) of rewriting "a!b%c"?

the '%' hack isn't actually documented anywhere that i
know of.  for this reason, it could be considered the
"least binding token".  it's been my experience that it
is far better to resolve
	host!left%right
on the '!' and thus send <left%right> to "host" for delivery.
the advantage of the % hack is that it allows for mail
to pick it's way through systems that will hopefully
leave the '%' parts alone until the the very last.  if you
start giving it higher precedence than '!', the results
will be unpredictable.  the only time you would resolve on
the '%' in an address of
	left%right
is if the '%' is the only recognized routing token left.

--dan dorough, systems programmer, ccdan@ucdavis.edu, (916)752-3420


From ncr-sd!ncrcae!hubcap!gatech!bloom-beacon!tut.cis.ohio-state.edu!mailrus!nrl-cmf!ames!killer!mjbtn!root Mon Apr 18 15:05:11 PDT 1988

In article <379@tness7.UUCP>, mechjgh@tness7.UUCP (Greg Hackney ) writes:
> Using the Elm mailer, I type the address:
> 
>     murthy@svax.cs.cornell.edu
> 
> Elm reads the paths file, and changes it to the
> shortest route:
> 
>     bellcore!rutgers!murthy@svax.CS.CORNELL.EDU
> 
> rutgers kicks it back as an UNKNOWN host, but it
> WILL accept this address:
> 
>     bellcore!rutgers!svax.cs.cornell.edu!murthy
> 
> Is it rutgers, Elm, or my domains and paths file that is screwed,
> or all of the above?

You would probably be safest to have your rewrite rules in your domains
file write the address to the whole bang path address that rutgers did
accept.  It has to do with the precedence given to '@' over '!' on some
systems, while the '!' is given precedence over '@' on others.  This of
course makes two entirely different addresses out the address you entered.

For example, say '@' over '!', h1!h2!h3!user@system.domin would be interpretted
as (h1!h2!h3!h4!user)@system.domain which means that from system, send via
uucp to h1!h2!h3!h4!user.  If it were '!' over '@', then the same address would
breakup as h1!h2!h3!h4!(user@system.domain), which is what I assume you are
wanting.  My mailer, smail, gives precedence of '@' over '!'.

I had similar experiences with trying to send mail via ucbvax to a user on
BITNET via ucbvax.  I gave it 'h1!h2!h3!ucbvax!user@system.BITNET'.  What 
happened was that it managed to get to ucbvax without some other system
in between from parsing it differently (ie, it made it to ucbvax on the
bang path safely), but at ucbvax, it was parsed to be mailed to 'h1!h2!h3!
ucbvax!user' and of course, h1 was not connected directly to ucbvax, so
it returned it as host unknown.

This is sort of a crude explanation, but once I changed my rewrite rules in
the domains file to all bang path generation, it worked like a charm.  My
mailer actually rewrites everything to bang paths too, so I can't be too far
off.

Hope this helps.

Mark.



-- 
       Mark J. Bailey  _____________________________________________________
      _________________\                                              _____|
     >                          @ Nashville            Knoxville    _/
    /                                                      +  ____''
   > 	Jackson +                 <*> MURFREESBORO          _/
  /              "From the Heart of Middle Tennessee!"   ___>
 > + Memphis                              Chattanooga  _< 
<______________________________________________+_______/        JobSoft     
 UUCP: ...!{ihnp4,cbosgd,mit-eddie}!killer!mjbtn!root   Design & Development Co
 FIDO: Mark Bailey at Net/Node 1:116/12                  Murfreesboro, TN  USA