Another issue: quoting
Roy Badami <[email protected]>
| Newsgroups | gmane.ietf.imaa |
|---|---|
| Message-ID | <[email protected]> |
Apologies if I've missed this (I've only had time to skim the document
and discussion so far), but I'd like to raise the issue of quoting as
a possible open issue (that isn't listed as such in the base
document).
Quoting in local parts is a messy construct. As I understand it, the
revised grammar in RFC2822 doesn't allow quoting (or linear
whitespace) in a localpart, though of course they are still allowed
for backward compatibility as part of the obsolete syntax.
Given that these constructs are deprecated by RFC2822, is there any
reason to permit their use in internationalized local parts at all?
I can think of one very strong reason for forbidding them outright in
internationalized localparts: complexity. The current specification
is rarely implemented correctly on the current Internet. Fully
supporting quoting in IMAA could significantly complicate the
complexity of IMAA, depending on what other design choices are made,
and there's no reason to believe it would be supported any better than
it is with ASCII.
One of the problems with the 822 specification is that localparts
aren't just a sequence of characters, with quoting being just a
transport encoding. Localparts are a sequence of tokens, namely atoms
and dots.
In fact, the definition of "dequoted local part" in the base document
is problematic as it stands, because in 822 there isn't any such
thing.
By way of example, it seems to me that the RFC822 parse of the
following two localparts is distinct, and as a result they could
validly refer to distinct mailboxes:
roy.badami
"roy.badami"
The first is a sequence of three tokens: the atom "roy", the token "."
and the atom "badami". The second is a single atom. The following
three localparts are all equivalent, however:
roy.badami
roy . badami
"roy"."badami"
Most software wants to treat the localpart as simply a sequence of
characters (at least after dequoting) but it isn't defined that way.
Continuing to allow quoting in localparts may not be without its
benefits (eg for X.400 gatewaying), but since the authors of RFC2822
appear to have already made a decision on the future of quoting, I
suggest that we consider the following option:
I would therefore propose that we consider defining a grammar for
internationalized local parts based on the 2822 grammar. As a result,
any localpart that contains a non-ASCII character MUST NOT contain any
of the following:
quoting (ie backlash or double-quote)
whitespace
any ascii character that is not permited unquoted.
Opinions?
-roy