Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83 SMI; site sun.uucp Path: utzoo!linus!decvax!decwrl!sun!gnu From: gnu@sun.uucp (John Gilmore) Newsgroups: net.mail.headers Subject: Re: internetwork addressing questions, with sendmail.cf fix Message-ID: <1547@sun.uucp> Date: Tue, 17-Jul-84 03:56:06 EDT Article-I.D.: sun.1547 Posted: Tue Jul 17 03:56:06 1984 Date-Received: Wed, 18-Jul-84 06:25:22 EDT References: <694@hou3c.UUCP> Organization: Sun Microsystems, Inc. Lines: 38 To answer just a few of the questions: 2) Since '%' (percent) it isn't part of the RFC822 grammer, what does it mean and what is the convention for parsing it? It is a kludge invented somewhere on the Arpanet which was used to get around the rule that "there can only be one '@' in an address". If you send something to user%host@gateway, by 822 rules it should go to 'gateway'. There at the gateway, the 'user%host' part is subject to local rules, and it turns out that treating it as 'user@host' is a very useful local rule, given the current chaotic state of the various interconnected nets. 4) Is there a permissable way to do the ARPA-to-BIT-to-USEnet addressing implied in the second choice above? In other words, is there an accepted way to parse a mixture of '!', '%' and '@' together. If so, how widely would it be accepted? Here at Sun I made a minor change to the sendmail config files and noticed that more mail was failing, so 'fixed' our config files to avoid giving precedence to any of ':^!=%'. We simply take the leftmost of them and deal with it. This fixed the problems people were having. As with any 'rule' in the nets, you can't depend on it, but it might be a useful starting point. Note that any site that connects to multiple networks will probably parse '@' at high precedence (as required by RFC822) though. This is the section of our sendmail.cf (at the end of ruleset 3) which implements the non-precedence. The important part is that the leftmost token to match be '$-' rather than '$+'. Note that this also parses the new uucp transport-addrs (host.domain!user). Enjoy. # convert old-style addresses to domain-based addresses # All old-style addresses parse from left to right, without precedence. # Note that the left side of '%' is a username; it is matched with $+ so # that complex names like "john.gilmore%l5" will be caught and translated. # The rest can only have an atom as the host name (left of the symbol). R$-:$+ $@$>3$2@$1 host:user R$-^$+ $1!$2 convert ^ to ! R$-!$+ $@$>6$2<@$1.uucp> uucphost!user R$-=$+ $@$>6$2<@$1.bitnet> bitnethost=user R$-.$+!$+ $@$>6$3<@$1.$2> host.domain!user R$+%$+ $@$>3$1@$2 user%host