[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: msg-id



In <41CAB9A3.77D6@xxxxxxxxxxxxxxxxx> Frank Ellermann <nobody@xxxxxxxxxxxxxxxxx> writes:

>| msg-id-core     =  "<" unique "@" mdomain ">"
>| mdomain         = dot-atom-text / ("[" address-literal "]")
>| address-literal = 1*( atext / "." / ":" )    ; see RfC 2821

But you can't say "see RfC 2821" when the syntax you give bears no
resemblance to anything actually in RFC 2821.

The syntax actually given in RFC 2821 may well be, as you say "science
fiction". The syntax given in RFC 2822 for <domain-literal> and
<no-fold-literal> is also "science fiction" (and a superset of the RFC
2821 one). So which piece of science fiction should we follow? I think it
_has_ to be the RFC 2822 one, since our remit is to be compatible with RFC
2822 wherever possible.

Now our Chair _might_ allow us to go for something much simpler such as
you suggested, and it would indeed be tidier, but there is no _technical_
requirement to do so, so it would be purely a matter of tidiness.

Ruling from the Chair, please?

If you stick with something close to RFC 2822, then it would have to be:

   mdomain         = dot-atom-text / ("[" no-fold-literal "]")
   no-fold-literal = "[" *( mdtext / "\[" / "\]" / "\\" ) "]"
   mdtext          = %d33-61 /   ; printable US-ASCII
                     %d63-90 /   ; not including
		     %d94-126    ; ">", "[" , "]", or "\"

Observe the omission of NO-WS-CTL.


>| unique          = dot-atom-text / ( DQUOTE unique-quote DQUOTE )
>| unique-quote    = ( "." [unique-part] ) /
>|                   ( [unique-part] "." ) /
>|                   ( [unique-part] unique-literal [unique-part] )
>| unique-part     = 1*( atext / "." / unique-literal )
>| unique-literal  = "(" / ")" / "," / ; all specials, minus ">",
>|                   "[" / "]" / "@" / ; minus DQUOTE, minus "\",
>|                   ":" / ";" / "<" / ; minus single ".", plus:
>|                   ".." / "\\" / ( "\" DQUOTE )

Yes, that syntax would work, though I am not so convinced by the names you
want to give to the various pieces (particularly the "unique" stuff, since
the id-left has no requirement to be globally unique on its own - only
when taken in conjunction with the id-right).

Anyway, for the benefit of others who have not been following this
exchange too closely, here is a set of examples that are permitted by RFC
2822, but not to be permitted in USEFOR:

    <"abcd"@example.com>	(use <abcd@xxxxxxxxxxx>)
    <"ab\cd"@example.com>	(use <abcd@xxxxxxxxxxx>)
    <"a.b.c"@example.com>	(use <a.b.c@xxxxxxxxxxx>)
    <abcd@[ab\cd]>		(use <abcd@[abcd]>)

and here are some example still permitted by both:
    <"a\"bc\"d"@example.com>
    <"a..c"@example.com>
    <".a.b.c."@example.com>
    <abcd@[a\[bc\]d]>

and observe that
    <abcd@xxxxxxxxxxx>
and <abcd@xxxxxxxxxxx>
are _different_ <msg-id>s (opinions differ as to whether they are different
in RFC 2822).    

I think all those examples should appear in our draft.

-- 
Charles H. Lindsey ---------At Home, doing my own thing------------------------
Tel: +44 161 436 6131 Fax: +44 161 436 6133   Web: http://www.cs.man.ac.uk/~chl
Email: chl@xxxxxxxxxxxxxxxx      Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K.
PGP: 2C15F1A9      Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5