[net.mail] user@system.arpa syntax question

perl@rdin.UUCP (04/30/84)

<>

How do I send mail (using regular System III /bin/mail) to someone
whose 'Path:' looks like this:

floyd!harpo!seismo!hao!hplabs!sri-unix!reiher@ucla-cs.arpa

Robert Perlberg
Resource Dynamics Inc.
New York
philabs!rdin!perl

fair@dual.UUCP (Erik E. Fair) (05/03/84)

> How do I send mail (using regular System III /bin/mail) to someone
> whose 'Path:' looks like this:
> 
> floyd!harpo!seismo!hao!hplabs!sri-unix!reiher@ucla-cs.arpa
> 
> Robert Perlberg
> Resource Dynamics Inc.
> New York
> philabs!rdin!perl

There are two catches to that address:

	1) SRI-UNIX does not gateway mail.

	2) seismo is also SEISMO.ARPA, and therefore takes `@' with a
		higher precedence than `!', so it will connect to UCLA-CS.ARPA
		and say, I have a letter for `hao!hplabs!sri-unix!reiher'
		which will lose.

What you want to do is this:

	floyd!harpo!seismo!reiher@UCLA-CS.ARPA

and given that the folks at Seismo don't object to playing gateway, you win.

	Mail Wizardry while U wait,

	Erik E. Fair	ucbvax!fair	fair@ucb-arpa.ARPA

	dual!fair@Berkeley.ARPA
	{ihnp4,ucbvax,cbosgd,decwrl,amd70,fortune,zehntel}!dual!fair
	Dual Systems Corporation, Berkeley, California

gds@mit-eddie.UUCP (Greg Skinner) (05/06/84)

But Erik:  Will seismo's sendmail.cf automatically convert the address
to the right of seismo to an arpa-style address just because the '@' is
there?  Does that mean if seismo's ARPAnet service is disabled the
message will lose?  (I hope sendmail.cf has info to do routing in the
presence of the higher-precedenced-network failure, but I haven't looked
at it yet to know.)

Sample message (and Erik's solution) included:

>> floyd!harpo!seismo!hao!hplabs!sri-unix!reiher@ucla-cs.arpa

>	2) seismo is also SEISMO.ARPA, and therefore takes `@' with a
>		higher precedence than `!', so it will connect to UCLA-CS.ARPA
>		and say, I have a letter for `hao!hplabs!sri-unix!reiher'
>		which will lose.
>
>What you want to do is this:
>
>	floyd!harpo!seismo!reiher@UCLA-CS.ARPA

fair@dual.UUCP (Erik E. Fair) (05/09/84)

> From: gds@mit-eddie.UUCP (Greg Skinner)
> 
> But Erik:  Will seismo's sendmail.cf automatically convert the address
> to the right of seismo to an arpa-style address just because the '@' is
> there?  Does that mean if seismo's ARPAnet service is disabled the
> message will lose?  (I hope sendmail.cf has info to do routing in the
> presence of the higher-precedenced-network failure, but I haven't looked
> at it yet to know.)

>> floyd!harpo!seismo!hao!hplabs!sri-unix!reiher@ucla-cs.arpa

Remember that UUCP mail works by stripping off the machine names as it goes.
So when the letter gets to seismo, uuxqt executes a command like this:

	rmail	hao!hplabs!sri-unix!reiher@ucla-cs.arpa

reduced to simplest form, you now have a problem, which you had all along,
but didn't know about until you hit a site that understands what `@' means.
This problem in short is, `How do you parse a!b@c?'

	(a!b) @ c	(Hello C.ARPA, I've got a letter for <a!b>)

	a! (b@c)	(uux - a!rmail b@c)

Ambiguity. In the UUCP world, this is easy. Bangs come first, (form #2)
becase we don't know about at signs and ARPANET and RFC822. In the
ARPANET world, anything to the left hand side of an `@' is for local
interpretation by the host listed on the right hand side of the `@'.
When you hit an ARPANET site, this rule come first, unless you force
things, which I won't go into here.

So when the address listed above gets to seismo,
it will open a TCP socket to UCLA-CS.ARPA, and say,

	RCPT <hao!hplabs!sri-unix!reiher>

and UCLA-CS will say,

	550 Huh? Whodat?

Seismo will thank the nice smtp server, and mail a letter back to original
sender saying it was unable to deliver it. Nope, no rerouting to UUCP,
because ARPANET failed, at least not by default.

	Erik E. Fair	ucbvax!fair	fair@ucb-arpa.ARPA

	dual!fair@Berkeley.ARPA
	{ihnp4,ucbvax,cbosgd,decwrl,amd70,fortune,zehntel}!dual!fair
	Dual Systems Corporation, Berkeley, California

dave@uwvax.ARPA (05/09/84)

Here, with the a!b@c ambiguity comes a real downfall in sendmail.  All the
other complaints pale under this one.  Sendmail	 doesn't have any way
of routing mail depending on how the site received the mail.  You don't
know how many times I've wanted to do things to addresses depending on how
they were received!

Now the biggy..... Has anyone out there got any ideas on how to make
sendmail be responsive to how it received its mail?
-- 
Dave Cohrs @ wisconsin
...!{allegra,heurikon,ihnp4,seismo,sfwin,ucbvax,uwm-evax}!uwvax!dave
dave@wisc-rsch.arpa

steveh@hammer.UUCP (Stephen Hemminger) (05/11/84)

Well one way to make sendmail sense where it got mail from is to kludge
in support for $r and $s.  The way I added $r the following way:

	o In servsmtp.c add code to define $r to be SMTP

	o Change rmail to run sendmail with an additional flag: -oMrUUCP

	o Other mail receivers would have to do the same...

rpw3@fortune.UUCP (05/12/84)

#R:rdin:-39000:fortune:15600003:000:621
fortune!rpw3    May 11 17:55:00 1984

Sounds like we need to be able to set the ".cf" state machine's initial
state depending on a command line option. Then, each different major
domain's mailer ("rmail", SMTP, etc.) would use a different option
when sendmail was run. That gets you to a different intial state, so
that the parsing rules are caller-dependent.

I thought something along those lines was possible, no? Isn't there a
way in the ".cf" file to test command-line options?

Rob Warnock

UUCP:	{ihnp4,ucbvax!amd70,hpda,harpo,sri-unix,allegra}!fortune!rpw3
DDD:	(415)595-8444
USPS:	Fortune Systems Corp, 101 Twin Dolphin Drive, Redwood City, CA 94065

rees@apollo.UUCP (05/14/84)

  Here, with the a!b@c ambiguity comes a real downfall in sendmail.  All the
  other complaints pale under this one.  Sendmail	 doesn't have any way
  of routing mail depending on how the site received the mail.  You don't
  know how many times I've wanted to do things to addresses depending on how
  they were received!

  Now the biggy..... Has anyone out there got any ideas on how to make
  sendmail be responsive to how it received its mail?

What I did for the University of Washington mailer was simple but
effective.  I wrote a separate /bin/rmail that just translates
destination addresses of the form "a!<anything>" to "<anything>@a.uucp".
If necessary, all '@' in "<anything>" can be turned into '%' also
(although I hate having to do that).

mark@cbosgd.UUCP (Mark Horton) (05/17/84)

The UUCP project has decided to use a related syntax:
	domain!user
for this.  Thus, instead of rmail from root@ucbvax.UUCP
(the user level syntax), the transport layer uses
ucbvax.UUCP!root.  Since the local site understands this,
and the local site name will be prepended before the mail
goes out, you get your machine name prepended cbosgd!ucbvax.UUCP!root.

The advantage to this transport syntax is that no hosts that
understand @ or ! will misinterpret it.  The From: line and
the commands the user will type will still be user@domain.

	Mark Horton