[net.mail] Orphaned Response

ajs@hpfcla.UUCP (08/13/84)

> During the last month, I have cutting down on the number of replies
> I make to authors of articles.  The reason: only about half get through...

Autorouting  tools help a lot.  But I don't expect  anything with an "@"
in it to get  through,  so I'm not  disappointed  when  it  doesn't.  My
simple-minded  (real user)  perception  of this aspect of e-mail is that
"it just don't work too hot".

jad@hpfcla.UUCP (jad) (08/07/85)

> /***** hpfclo:net.mail / nsc!chuqui /  7:03 pm  Jul 22, 1985*/
> I'm starting to see problems that look like smart mailers messing up
> addresses. I **think** it may have something to do with some of the
> assumptions in the gatech sendmail configuration files -- I'm hacking on
> them now and some things don't look quite right.

	Thanks, by the way, for starting a religious debate.	;-)

	Seriously -- crossing domains is a severe problem.  I got mail
	from John Quarterman in response to a posting.  Let me share
	with you part of the header.  My question is "how can I reply to
	this?" ... pretend I am a beginner.

> Date: Tue, 6 Aug 85 11:02:34 cdt
> From: ihnp4!purdue!jsq%im4u.UTEXAS@ut-sally.ARPA (John Quarterman)

	The system I am on does not talk to the ARPAnet, but the mailer
	I use (MH) gives '@' the highest precedence.  In trying to reply
	I try to send to ut-sally.ARPA.  Ugh.  The actual return addr.
	generated by MH looks like this:

To: ut-sally.ARPA!ihnp4!purdue!jsq%im4u.UTEXAS (John Quarterman)

	Could be that MH is damaged, but it should NOT be this tough to
	figure out how to reply to someone!

	How was this problem caused?  He sent mail to my Purdue account,
	via the ARPAnet, which forwarded to me, via UUCP.  Hence, the
	ihnp4!purdue tacked on.

	Mailers  should  leave the  sender's  address the hell alone.  I
	would  see  something  like  jsq@im4u.UTEXAS.ARPA  ...  now,  my
	machine does not know im4u (perhaps it came into existance since
	my database  was last  generated  -- the  inherent  problem with
	databases is that they always seem to be out of date).  But I do
	know the ARPA domain (well, OK, this should be the .EDU domain);
	and I may even know UTEXAS, so I don't go home hungry.

	When I reply to this mail (consider me a novice), my user-agent
	constructs the reply address, which (SHOCK!) just happens to
	be the exact same thing as is in his mail (ie. NO MUNGING EVER!).
	When I ship off my mail with the address jsq@im4u.UTEXAS.EDU (if
	I may), my mail delivery agent notices the mail is non-local,
	and sends it off.

	Okay, easier said than done.  There's a big difference between
	ut-sally.UTEXAS.EDU in the UUCP network (which it is) and the
	same ut-sally.UTEXAS.EDU in the ARPA network ... for one thing
	the UUCP mail will get there a hell of a lot slower and for
	another the ARPA mail will get there for sure (nearly).  Perhaps
	network information should be encoded in the domain?

				--	jad	 --
				John A. Dilley, FSD
				Fort Collins,    CO

ARPA:				terrapin@Purdue.EDU
UUCP:				{ihnp4}! hpfcla!jad
PHONE:				(303)226-3800 x4166

rs@mirror.UUCP (08/26/85)

The following shar file contains two programs.  The first is a /bin/sh
script that reads an official DoD Internet table (in colon-syntax),
and writes a pathalias-suitable list of all ARPA hosts.  The official
name, as well as the nicknames, are listed.  (There might be a problem
if a host has no nicknames, but the current hosttable (274, 8/21/85)
has no such hosts.)  The filter also ignores all the single-user
machines it can find:  I DON'T want somebody's office SUN in my tables!

The second is a small word-wrapper for those people who don't have
fmt.

Enjoy!

------------------------------cut here------------------------
# This is a shell archive.  Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
#
# Wrapped by mirror!rs on Mon Aug 26 11:33:30 EDT 1985
# Contents:  filter ww.c
 
echo x - filter
sed 's/^XX//' > "filter" <<'@//E*O*F filter//'
XX#! /bin/sh
XX# A small script to read an offficial internet hosts file, and
XX# put it into something that can be used with pathalias.
XX#
XX# The process is:
XX#	1.  Get all (not commented-out) host entries that aren't
XX#	single-user machines (an arbitrary list, I admit).
XX#	2.  Transliterate, strip off ARPA domain, and punt any
XX#	other domains.
XX#	3.  Sort, deleting multiple occurrences.
XXT=/tmp/hosts$$
XXtrap 'exec rm -f $T Arpa.pathalias' 1 2 3 15

XXecho 'ARPA = {' >Arpa.pathalias
XX	grep -v '^;' hosts.txt			|\
XX	fgrep 'HOST' 				|\
XX	awk -F: '\
XX$4 !~ /.*(ALTO|IMSAI|PC|SUN|SYMBOLICS|TRS).*/ {
XX    i = split($3, names, ",")		
XX    for (j = 1; j <= i; j++)
XX	print names[j]
XX}'						|\
XX	tr 'A-Z' 'a-z '				|\
XX	sed -e 's/\.arpa//' -e '/.*\./d' -e 's/$/,/' |
XX	tr -d ' \010'				|\
XX	sort -u					|\
XX	fmt >>Arpa.pathalias
XXrm -f $T
XXexec echo ' VOID }' >>Arpa.pathalias
@//E*O*F filter//
chmod u=rwx,g=r,o=r filter
 
echo x - ww.c
sed 's/^XX//' > "ww.c" <<'@//E*O*F ww.c//'
XX/*
XX**  WW
XX**
XX**  Copy stdin to stdout, doing word-wrap so that no lines are longer
XX**  than a proscribed width.  It doesn't expand tabs, but if you put
XX**  tabs in wrapped text, you deserve what you get!  It also seems to
XX**  mess up sometimes.
XX**
XX**  Written August 26, 1985 by Rich $alz at Mirror Systems (mirror!rs).
XX*/

XX#include <stdio.h>

XX#define WIDTH		 80

XXextern char		*gets();
XXchar			 Ibuff[256];
XXchar			 Obuff[WIDTH + 1];


XXmain()
XX{
XX    register char	*I;
XX    register char	*O;
XX    register char	*Ispace;
XX    register char	*Ospace;
XX    register int	 C;

XX    for (C = 0, O = Ospace = Obuff; I = fgets(Ibuff, sizeof Ibuff, stdin); )
XX    {
XX	if (*I == '\0')
XX	{
XX	    *O = 0;
XX	    (void)puts(Obuff);
XX	    (void)putchar('\n');
XX	    C = 0;
XX	    O = Obuff;
XX	    continue;
XX	}
XX	for (I[strlen(I) - 1] = ' ', Ispace = I; *I; )
XX	{
XX	    while (C < WIDTH && *I)
XX	    {
XX		*O++ = *I++;
XX		C++;
XX		if (*I == ' ')
XX		{
XX		    Ospace = O;
XX		    Ispace = I;
XX		}
XX	    }
XX	    if (C >= WIDTH) 
XX	    {
XX		if (Ospace == Obuff && *Obuff != ' ')
XX		    Obuff[WIDTH] = '\0';
XX		else
XX		{
XX		    *Ospace = '\0';		
XX		    if (*I)
XX			I = Ispace;
XX		}
XX		(void)puts(Obuff);	
XX		C = 0;	
XX		O = Ospace = Obuff;		
XX	    }
XX	}
XX    }

XX    *O = '\0';
XX    (void)puts(Obuff);
XX    exit(0);
XX}
@//E*O*F ww.c//
chmod u=rw,g=rw,o=rw ww.c
 
exit 0

--
Rich $alz	{mit-eddie, ihnp4!inmet, wjh12, cca, datacube} !mirror!rs
Mirror Systems	2067 Massachusetts Ave.
617-661-0777	Cambridge, MA, 02140

tp@ndm20 (09/16/85)

>Instead of just going over and over this, why don't you explain the
>algorithm you recommend for guessing the next site to choose?  That would
>help in furthering the discussion.

And while you are doing it, remember that idealism is nice, but to really 
get the mail through in the real world, you had better not assume that any
machine along the way has a mailer that can send to a non-adjacent site
unless you have certain knowledge. If I were host1 in your example your mail
would be returned to you as undeliverable. I have pathalias, but I don't 
have an intelligent mailer that can be told to look things up in it, since
I am not running 4BSD. And if you hand me user@host, my mailer will be real
unhappy, because it doesn't like @'s.

Terry Poot
Nathan D. Maier Consulting Engineers
(214)739-4741
Usenet: ...!{allegra|ihnp4}!convex!smu!ndm20!tp
CSNET:  ndm20!tp@smu
ARPA:   ndm20!tp%smu@csnet-relay.ARPA

tp@ndm20 (09/16/85)

(A consensus has been reached?   Could someone  mail me  a summary of
the consensus.  I must have missed it.)  (No  smiley face,  that is a
serious request.)  

The map data will have to change completely before any  of this stuff
will work.  All the names will have  to have  their domains attached.
I would suggest still making the full  map available,  as good routes
have nothing to do  with domains.   Besides,  if you  channel all the
mail for, say, northern california through one  site, you  may have a
lot of trouble finding a volunteer to be that site.  

Domain names should have nothing to do with routes.   All they really
solve is the name-space collision  problem.   Trying to  use them for
routing  will  be  a disaster,  as all  the mail  will bottle-neck at
certain systems, who will probably not be happy about it.   The other
benefit of domains is that if the mail  can't be  delivered along the
path it was sent, you can try  sending it  along the  domain tree, as
those sites should have up to date routing information.  

Since I started I might  as well  present my  (lowly peon) suggestion
(on mechanics only, not policy).  I suggest that all mail should have
RFC-822 headers with *just*  the address  (as opposed  to any gateway
routing garbage) in the To:  line.  As the RFC tells us,  this is the
envelope, not part  of the  message, as  someone has  suggested.  The
mailer would take this and look up the route with  pathalias and send
it along.  Note that the address and the route are unrelated, as they
are supposed to be.  If a gateway is  required, or  the database does
not  have  the  name  in  it,  it  should be  sent to  the gateway or
name-server  with  out  a destination  address on  the transport line
(i.e.    the  gateway  system  would  get  an rmail  command from its
neighbor without an  address.   This would  be something  of the form
rmail  host1!host2!host3!   somewhere down  the line).   This system,
being  a  name-server  or  gateway,  must  of course  have an equally
sophisticated mailer.  It would then look at  the RFC-822  To:  line,
and take whatever steps neccessary to deliver the mail.   In the case
of a gate-way, it would send it out on the  appropriate net.   In the
case of a name-server, it would generate a proper route  and mail it.
No return routes  need to  be maintained  in either  case because any
system  that  re-routes  a message  can presumably  generate a return
route  through  the  pathalias database.   Remember  this is assuming
domain addressing, so that host names are unique.

This  is compatible  with existing  software.   Standard UUCP address
still  work.    Using  a gateway  manually (i.e.   without up-to-date
software) actually becomes easier:  Just put an RFC-822 compliant To:
line in your  message and  mail it  to a  gateway.   No precedence to
worry about, no syntax to learn.  Systems with dumb  mailers can just
get in  the habit  of mailing  it to  a smart  neighbor for delivery.
(Under  this  scheme,  any  site  with  the  appropriate  mailer  and
pathalias database can be considered a name server, thus distributing
the load more evenly net-wide).

Of course the map data needs to  change, as  I said.   Also pathalias
needs  to  know  about domains.   This  can probably  handled more by
changing the map data  than the  program.   I think  the program will
already do it, by entering  each domain  as a  subnetwork, and making
the  hosts  with  smart mailers  gateways.   Since a  subnetwork is a
psuedo host, you can nest them easily.  I am no  expert on pathalias,
so I could be wrong about this.  

I would leave it to the mailer to access the database with
successively more general names, rather than making  pathalias do it.
For  example,  when handed  user@x.y.z, the  mailer should  ask for a
route to x.y.z.  If such a  host exists  in the  database, the mailer
should generate a full route (i.e.   host1!...!hostn!x.y.z!user).  If
such a host is not in the database, the mailer should ask for a route
to y.z and then z.  If  a route  for y.z  is known,  the mailer would
generate  host1!...!hostn!y.z!   indicating  to that  machine that it
needs to generate a route for the message.  If no route to any higher
domain  can  be  found,  the  mailer should  bump the  message to the
nameserver for his domain.  By this passing of the buck the mail will
get through  as long  as the  top level  domains all  know about each
other.  For example, if I  mail from  tp@a.b.c to  user@x.y.z, and my
machine knows nothing of x.y.z, y.z, or z, I  should send  it to b.c.
If that machine can't deliver it, it should  be sent  to c.   If that
machine can't deliver it, it can't be delivered.  

This  scheme  gets  the  mail to  gateways automatically.   (There is
really no difference between a name-server  and a  gateway insofar as
the software should  be concerned.   They  are both  systems that can
forward mail that can not be directly delivered.)

I have used the  names of  domains as  host names  intentionally.  My
intent is that when sending  to y.z,  for instance,  the mailer would
consult pathalias  for a  route to  that pseudo-system (sub-network),
and the mail would actually go to one of the gateways for that domain
(i.e.  someone with a smart mailer who can  act as  a name-server for
the domain.)  This results in the  mail getting  to the  domain and a
name-server  request  happens  automatically,  which  is  exactly the
desired result in such a situation.  

This is a general mechanism and not tied to any particular
arrangement of domains or any political decisions on how it should be
done or who is in charge.  Those are political decisions, and while I
do  have  opinions  on them,  they are  not represented  in the above
discussion.

Thanks,
Terry Poot
Nathan D. Maier Consulting Engineers
(214)739-4741
Usenet: ...!{allegra|ihnp4}!convex!smu!ndm20!tp
CSNET:  ndm20!tp@smu
ARPA:   ndm20!tp%smu@csnet-relay.ARPA

tp@ndm20 (09/16/85)

NOT EVERYONE RUNS 4BSD ON A VAX!!!

Everyone proposing standard ways of  doing things  please repeat this
to yourself until you understands what it means!  Every proposal that
has been made so far about the proper way  to address  and route mail
will  require  me  to  retire  my mailer  and run  (and probably port
myself) something from  elsewhere, and  you people  are talking about
changing the  whole damn  thing because  of a  bug in  ONE version of
unix!    Is none  of this  stuff worth  doing if  you have  to edit a
configuration file?  Talk about laziness!  Do you  people not realize
that  there are  people out  here who  don't even  have sendmail, and
could care less if your mailer has a bug, and are not very
sympathetic about it?  Of course whatever Mark Horton puts in the map
data will stick, but for chrissakes, think about it first!

Terry Poot
Nathan D. Maier Consulting Engineers
(214)739-4741
Usenet: ...!{allegra|ihnp4}!convex!smu!ndm20!tp
CSNET:  ndm20!tp@smu
ARPA:   ndm20!tp%smu@csnet-relay.ARPA

Sorry for the flames. Please accept my apologies for the tone of
the message and consider the content only. The point is valid.

avolio@decuac.UUCP (Frederick M. Avolio) (09/28/85)

In article <3700008@ndm20>, tp@ndm20 writes:
> Everyone proposing standard ways of  doing things  please repeat this
> to yourself until you understands what it means!  Every proposal that
> has been made so far about the proper way  to address  and route mail
> will  require  me  to  retire  my mailer  and run  (and probably port
> myself) something from  elsewhere, and  you people  are talking about
> changing the  whole damn  thing because  of a  bug in  ONE version of
> unix!

I understand Terry's frustration.  I would be too if it looked like
with some wonderful "fix" that other's implement I'd be cut off from
electronic mail.  But no one will be or need be forced to change
software.  There are different levels of sophistication in mailers and
all will be accommodated.  For example, if your mailer can only handle
explicite paths, then you juts use the explicite path if you have it
-- nothing changes.  Terry might see this address in the From_ line if
I sent him mail

	smu!texsun!ut-sally!seismo!decuac.ATL.UUCP!avolio

So your mailer can handle that.  Just send it on to smu ...  So nothing
need change -- especially if it cannot -- at your site.

Fred.