[comp.mail.misc] Is '@' ever needed?

jc@minya.UUCP (John Chambers) (06/18/91)

This may sound silly, but I  recently  realized,  and  testing  on  an
assortment  of machines has so far verified, that there seems to be no
reason to ever use '@' in a mail address.   If  you  always  use  '%',
mailers  that  I've tested all seem to accept it and convert it to '@'
when necessary.  I'm wondering if this really works everywhere.

This isn't entirely trivial. I've had some trouble at times explaining
to  novice  users  what  the  rules for email addresses are.  They are
mostly unbelieving at the complexity of it all.  ("Why can't they just
...?") I've been trying to find simple ways of explaining it.

The uucp and decnet syntaxes are pretty easy to explain. They are just
a  list  of  machine  names  followed  by a user name, and this can be
explained in seconds.  The only thing wierd  is  that  I  find  myself
explaining  "Well,  of course, no self-respecting hacker (oops, I mean
professional software engineer ;-) would ever  consider  something  so
obvious  as  using a comma as a list separator, so you have to use '!'
or '::' or something equally silly, but really it's  just  a  list  of
machines that know how to talk to each other, and a userid at the end.

But then I come to the internet notation, and people look at me really
strangely  when  I  try to explain why you write a list backwards, use
'%' for all but the last separator, and a '@' for the very  last  one.
(About all  I  can  say is that it is a good thing to think about when
someone is trying to tell you how well-designed it all is. :-)

It seems I can (so far) get  away  with  saying  to  use  '%'  as  the
internet  list separator, and if you see '@', it is equivalent to '%'.
Of course, I should also give an example explaining just why it  is  a
bad idea to mix '%' with '!' or '::', but that's a whole different bag
of worms that we won't go into until the next lesson.

So.  Are there any mailers lurking about for  which  '@'  is  actually
necessary?   Can  you  really always use '%' instead?  I'm not talking
about internal mail-system stuff, of course.  I'm also not looking for
any treatises on how '@' is the original and '%' is an add-on; history
is very interesting,  but  it's  not  the  current  point.   I'm  just
interested  in  what the poor suckers trying to get it to work have to
type to the computer.  Maybe you should try %-only addresses  on  your
mailer and report if it chokes. If we turn up any, maybe we can harass
the vendors to get them upgraded...

-- 
All opinions Copyright (c) 1991 by John Chambers.  Inquire for licensing at:
Home: 1-617-484-6393 
Work: 1-508-486-5475
Uucp: ...!{bu.edu,harvard.edu,ima.com,eddie.mit.edu,ora.com}!minya!jc 

rickert@mp.cs.niu.edu (Neil Rickert) (06/18/91)

In article <797@minya.UUCP> jc@minya.UUCP (John Chambers) writes:
>It seems I can (so far) get  away  with  saying  to  use  '%'  as  the
>internet  list separator, and if you see '@', it is equivalent to '%'.

 Picking a random address from my logs, I see that a local user has
corresponded with:

		STREK-L%PCCVM.BITNET@cmsa.Berkeley.EDU

 I guess you are saying that you could address this mail as:

		STREK-L%PCCVM.BITNET%cmsa.Berkeley.EDU

 Try this address on a Sun, with the distributed SunOS configuration
file (either sendmail.main.cf or sendmail.subsidiary.cf), and you will
discover that it is rewritten as:

		STREK-L@PCCVM.BITNET%cmsa.Berkeley.EDU

after which it bounces because 'PCCVM.BITNET%cmsa.Berkeley.EDU' is an
unknown host.

 The last time I checked, there were at least one or two SunOS systems
on the net.


-- 
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
  Neil W. Rickert, Computer Science               <rickert@cs.niu.edu>
  Northern Illinois Univ.
  DeKalb, IL 60115                                   +1-815-753-6940

igb@fulcrum.bt.co.uk (Ian G Batten) (06/18/91)

In article <797@minya.UUCP> jc@minya.UUCP (John Chambers) writes:
> This may sound silly, but I  recently  realized,  and  testing  on  an
> assortment  of machines has so far verified, that there seems to be no
> reason to ever use '@' in a mail address.   If  you  always  use  '%',
> mailers  that  I've tested all seem to accept it and convert it to '@'
> when necessary.  I'm wondering if this really works everywhere.

Most sendmail config files I've seen have something like this in them:

R$+%$+			$1@$2			convert '%'s to '@'s
R$+@$+@$+		$1%$2@$3		then reduce to only one '@'

Many other mailers do something similar.

It's a feature.

ian

les@chinet.chi.il.us (Leslie Mikesell) (06/19/91)

In article <797@minya.UUCP> jc@minya.UUCP (John Chambers) writes:
>This may sound silly, but I  recently  realized,  and  testing  on  an
>assortment  of machines has so far verified, that there seems to be no
>reason to ever use '@' in a mail address.   If  you  always  use  '%',
>mailers  that  I've tested all seem to accept it and convert it to '@'
>when necessary.  I'm wondering if this really works everywhere.

It doesn't work with stock AT&T sysV (pre-r4) mail, but then @'s don't
either.  Since % started life as an undocumented hack to work around
mailers that don't believe there is intelligent life beyond their own
network it's probably not a good idea to use it for general purpose
routing.  Its value of letting a remote address pretend to be a local
part until it reaches a gateway machine will be destroyed if everyone
starts recognizing it as a routing character and confusing its
precedence with the other operators.

>"Well,  of course, no self-respecting hacker (oops, I mean
>professional software engineer ;-) would ever  consider  something  so
>obvious  as  using a comma as a list separator

I would have used "machine1->machine2->user", but nobody asked me...

Les Mikesell
  les@chinet.chi.il.us

boyd@prl.dec.com (Boyd Roberts) (06/19/91)

Well, according to RFC 822's syntax you can have a%b%c, but then you're
left with just a `local part' address.  Your network software may well
interpret this in any number of ways, but to me it indicates local delivery.


    addr-spec		: non-local-addr-spec
			| local-part

    local-part		: word
			| local-part . word
			| local-part % word

    non-local-addr-spec	: local-part @ domain


Boyd Roberts			boyd@prl.dec.com

``When the going gets wierd, the weird turn pro...''
	

les@chinet.chi.il.us (Leslie Mikesell) (06/20/91)

In article <1991Jun19.143817.14743@prl.dec.com> boyd@prl.dec.com (Boyd Roberts) writes:
>Well, according to RFC 822's syntax you can have a%b%c, but then you're
>left with just a `local part' address.  Your network software may well
>interpret this in any number of ways, but to me it indicates local delivery.

Yes, the idea is to be able to pass routing information past strict
RFC 822 hosts to a gateway machine that knows that not all machines
are registered with the NIC.  The other common convention of
using bang-path!user@domain rarely works as expected since uucp and
RFC 822 machines like to parse in opposite directions.  Since most
mail handling software is installed on non-gateway machines as well
as gateways, handling %'s as routing operators when no other operator
is present has become common practice even though it has never been
required.

Les Mikesell
  les@chinet.chi.il.us

david@twg.com (David S. Herron) (06/20/91)

In article <797@minya.UUCP> jc@minya.UUCP (John Chambers) writes:
>This may sound silly, but I  recently  realized,  and  testing  on  an
>assortment  of machines has so far verified, that there seems to be no
>reason to ever use '@' in a mail address.   If  you  always  use  '%',
>mailers  that  I've tested all seem to accept it and convert it to '@'
>when necessary.  I'm wondering if this really works everywhere.

Yes this does sound silly.  However, having read many of your postings
in the past I realize you're not asking this question in jest.

If anything should go away it is the `%' since

	-- `@' is more expressive (read it as `at')
	-- the `%' was, and always has been (except for JANET),
	   a hack.

At any rate.. The %-hack notation is not gauranteed to work
everywhere.  After all it is in the local-part of the address
and is not supposed to be looked at except at the system specified
by the domain-part of the address.  Therefore the meaning of
the %-hack is not knowable anywhere except at that site.

I've run across at least one place where `%' is used in the
local-part and with different semantics than the %-hack.  I believe
this is the gateway for MCIMAIL.COM ... whichever gateway this
is, it is translating X.400 addresses into

S=surname%G=given%OU=Org-Unit%O=Org%PRMD=xxx%ADMD=xxx%C=xx@gateway.dom

Decoded a bit ... each portion of this is an attribute in an
X.400 address and using our friend, the `%', as a separator.

>This isn't entirely trivial. I've had some trouble at times explaining
>to  novice  users  what  the  rules for email addresses are.  They are
>mostly unbelieving at the complexity of it all.  ("Why can't they just
>...?") I've been trying to find simple ways of explaining it.

Funny.  I've been getting along with user@dom.ain for years and
rarely having to use funky routing stuff like '!' and '::' and etc.
I do worry when someone is so backwards to use `@host.uucp' in
their header but it seems to get through anyway.  (The magic
of pathalias I assume..)

	David

-- 
<- David Herron, an MMDF & WIN/MHS guy, <david@twg.com>
<-
<-
<- "MS-DOS? Where we're going we don't need MS-DOS." --Back To The Future

bob@MorningStar.Com (Bob Sutterfield) (06/21/91)

In article <797@minya.UUCP> jc@minya.UUCP (John Chambers) writes:
   ... there seems to be no reason to ever use '@' in a mail address
   ... [instead,] always use '%'

In the Internet mail addressing world, `%' denotes a component of a
mail transfer path, not an address.

   ...explaining to novice users what the rules for email addresses
   are.  They are mostly unbelieving at the complexity of it all.
   ("Why can't they just ...?")

"Why can't they just" use domain names?  user@host.dom.ain works fine,
and is easy to explain.

   ... uucp and decnet syntaxes ...  are just a list of machine names
   followed by a user name ... it's just a list of machines that know
   how to talk to each other, and a userid at the end.

Right, that's a path, not an address.  It describes the path that the
message should follow along the way to the destination.  Mail users
shouldn't need to worry about the details of transporting their
message to its recipient.

   But then I come to the internet notation, and people look at me
   really strangely when I try to explain why you write a list
   backwards, use '%' for all but the last separator, and a '@' for
   the very last one.

The internet notation is user@host.dom.ain, which describes an
address, which is a place to which mail should be delivered.  The
percent-hack notation describes a path, and it makes sense that your
users should get confused, particularly if you try to mix the two.

   (About all I can say is that it is a good thing to think about when
   someone is trying to tell you how well-designed it all is. :-)

The percent hack for path notations wasn't designed, it was hacked.
If you want design, use addresses instead of paths.

bdb@becker.UUCP (Bruce D. Becker) (06/24/91)

In article <797@minya.UUCP> jc@minya.UUCP (John Chambers) writes:
|This may sound silly, but I  recently  realized,  and  testing  on  an
|assortment  of machines has so far verified, that there seems to be no
|reason to ever use '@' in a mail address.   If  you  always  use  '%',
|mailers  that  I've tested all seem to accept it and convert it to '@'
|when necessary.  I'm wondering if this really works everywhere.

	BBBZZZZTTTT  Wrong answer, but thanks for playing.

	Most uucp mailers will NOT understand "%" in an
	email address. They think it is a legal character
	in a name. This includes "smail 2.5" as well
	(unless it has been patched to do so).

|[...]
|But then I come to the internet notation, and people look at me really
|strangely  when  I  try to explain why you write a list backwards, use
|'%' for all but the last separator, and a '@' for the very  last  one.
|(About all  I  can  say is that it is a good thing to think about when
|someone is trying to tell you how well-designed it all is. :-)

	Why are you using any "%" at all? The
	whole point of "@"-type addresses is
	to avoid making end users specify
	explicit routes.

|So.  Are there any mailers lurking about for  which  '@'  is  actually
|necessary?   Can  you  really always use '%' instead?  I'm not talking
|about internal mail-system stuff, of course.  I'm also not looking for
|any treatises on how '@' is the original and '%' is an add-on; history
|is very interesting,  but  it's  not  the  current  point.   I'm  just
|interested  in  what the poor suckers trying to get it to work have to
|type to the computer.  Maybe you should try %-only addresses  on  your
|mailer and report if it chokes. If we turn up any, maybe we can harass
|the vendors to get them upgraded...

	I don't understand how you have come to the
	conclusion that "%" is necessary. If your
	mailing software can't resolve routes, then
	it needs upgrading to something that can do
	so when given an "@"-type address.

-- 
  ,u,	 Bruce Becker	Toronto, Ontario
a /i/	 Internet: bdb@becker.UUCP, bruce@gpu.utcs.toronto.edu
 `\o\-e	 UUCP: ...!utai!mnetor!becker!bdb
 _< /_	 "Ferget yer humanity, do the poot" - devo