UUCP and preservingply-to: how?
John Chambers
jc at minya.bcs.org
Thu Apr 4 10:36:00 EST 1996
| Dale R. Worley wrote in a message to Mike Bilow:
|
| Note also that is illegal to use both a '!' and a '@' in a mail address, such
| as aaaa!bbbb at cccc. The UUCP side will parse this as "send to aaaa, which will
| send it to bbbb at cccc." The SMTP side will parse this as "send to cccc, which
| will send it to aaaa!bbbb."
Can you quote chapter and verse in some relevant standard for this?
I've often made similar suggestions when I've seen email addresses
with both '!' and '@', and been rebuffed by the claim that "everyone
knows" that one or the other meanings is the correct one. Of course,
different groups of "everyone" seem to know different interpretations,
and they can't quote any standard, either. I've looked around for the
appropriate standards to point people to, to no avail so far.
In my readings, I've gotten the impression that standards documents
casually ignore such questions. After all, why should an Internet
standard say anything at all about the interpretation '!'? To them,
it's a non-syntax character, and they'll usually respond by making it
clear what they think of people who use competing packages like UUCP.
Similarly, any UUCP standard (if such even exists ;-) is unlikely to
deal explicitly with '@', since it's not a significant character.
You can make a reasonable argument that, once you admit that UUCP
exists, there is a semi-definition that says "foo!joe at bar" should be
parsed as "foo!(joe at bar)". The argument goes as follows: The UUCP
definition is that an email address is of the form node!recipient,
where node is the name of a machine reachable via any transport
mechanism, and recipient is either 1) a user id known on that machine,
or 2) an email address that makes sense to the mailer on that machine.
In case 1), the mail is delivered to the user; in case 2), the mail is
delivered to the /bin/rmail command for forwarding. Thus, if you are
using UUCP, *any* string is valid after the '!', as long as the mailer
on the node can decipher it. Thus, "foo!(joe at bar)" is a legal
interpretation of "foo!joe at bar", if you have a UUCP-style mailer on
your own machine. Whether it will work depends on whether foo has an
rmail command that can parse "joe at bar".
How about the "(foo!joe)@bar" interpretation? Well, RFC821 says that
the only thing legal before an '@' is a user's login id, and "foo!joe"
isn't a valid login id on any known OS. Later RFCs have extended what
is allowed after the '@', to include FQDNs, but they haven't added any
sort of forwarding syntax for the recipient field. The '%' kludge is
just that. It isn't supported by any Internet standard; it's just a
convenience until we reach the ideal state in which any Internet host
can make a TCP connection directly to port 25 on any other host. The
dogma on the Internet is that forwarding isn't necessary, since all
hosts can connect directly to all others. If this doesn't work, you
shouldn't kludge the email system, you should fix your network. Thus
"(foo!joe)@bar" is not a valid SMTP address, and there don't seem to
be any other email standards that use '@', so this isn't a legal
parsing according to any standard.
In summary, "foo!(joe at bar)" is a legal parsing of "foo!joe at bar" using
the rules of one known email package (UUCP), while "(foo!joe)@bar" is
not legal using any mailer's rules. Whether this is relevant to you
depends on which email package you have installed.
We are, of course, getting further away from the ideal of universal
interconnection. Once the concept of "firewall" appeared, the game was
pretty much over; we can safely predict that the SMTP dogma tht no
forwarding is needed will never come true. Still, if you make
suggestions in the appropriate newsgroups about how to do SMTP
forwarding, the inevitable result is that you get lots of flames
telling you what an idiot you are for thinking that such kludgery is
necessary. Just fix your network, turkey, and it'll all work without
any forwarding. And anyway, you shouldn't need to use something like
"(foo!joe)@bar", because only an idiot would use UUCP, right? (Only an
idiot that likes reliable, configurable email, right?) Well, I've
gotten lots of such flames over the years. (They somehow never explain
how I am to get superuser access to all the other machines on the net
so as to implement their suggestions. ;-)
So I'd conclude that "(foo!joe)@bar" isn't a legal interpretation,
because it implies that SMTP mailers can do forwarding. Granted, all
competent mailers *can* do forwarding, but that's just an temporary
and unnecessary kludge, according to the established SMTP dogma. On
the other hand, "foo!(joe at bar)" is legal if you have a UUCP mailer,
because it implies that UUCP mailers can forward to SMTP mailers. They
can, and it's an officially sanctioned operation in the UUCP arena. If
you run smail, such inter-mailer forwarding is clearly and openly
supported. If you don't, well, you are at the mercy of whatever your
mailer's authors thought about the whole religious issue.
Now if the programmers that develop email software could be taught the
uses of parens, as I've done above. I mean, mathematicians figured
this out several centuries ago, and most people who build programming
languages have picked up on the idea. But just try finding an email
package that allows the use of parens to disambiguate expressions. Oh,
well; I guess I shouldn't gripe too much. After all, we are still
being saddled with software written by people that haven't learned
about the number zero, and haven't heard of null strings.
More information about the Discuss
mailing list