Re: Comments on and FWD: draft-klensin-emailaddr-i18n-02.txt

John C Klensin <[email protected]> Fri, 13 Feb 2004 14:47:46 -0500
Newsgroups gmane.ietf.imaa
Message-ID <[email protected]>
Charles, and Martin,

Sorry for not responding to Martin's note sooner, but now I get=20
to answer both at once :-)

--On Thursday, 12 February, 2004 21:34 +0000 Charles Lindsey=20
<[email protected]> wrote:

>> In <4.2.0.58.J.20040202150018.079b6770@localhost> Martin
>> Duerst  <[email protected]> writes:

>>> I have read your draft. Congratulations, I think it is
>>> extremely well written and well argued.
>>
>> Yes, I too have read this (though it was a long time before I
>> had an opportunity to sit down and study it carefully - hence
>> this delayed response). And I agree that it makes a most
>> persuasive case for solving several problems, not just the
>> local-part one, by allowing UTF-8 into headers. And that is
>> is really the only viable way to proceed. So I have just a
>> few niggles and issue to raise below. Of course, there is
>> still much detail to be filled in.

Thanks.  And "of course".

>>> I have the following comments:
>>
>>> - Name of the extension: Something a little bit more specific
>>>   than just "I18N" would probably be better.
>>
>> Indeed. There are two extensions under discussion (though
>> they might eventually be bindled together). So let us call
>> them I18N-ENVELOPES
>>     UTF-8-HEADERS

Actually, there are a bunch of such extensions.  Another one is=20
"get the trace fields out of the message headers, so we don't=20
have the potential of different (relay and other) MTAs inserting=20
things with different codings in the headers".  And another one=20
is the existing 8BITMIME.  My guess is that there will be more=20
before we get finished with this (although I haven't found=20
others to suggest).   Now, what we know about "lots of options"=20
is that we get into serious interoperability problems.  You pick=20
two, I pick three, and we have only one of them in common, so=20
the mail doesn't go through and people start talking about=20
"profiles" and "pro formas".  I don't think we should go there=20
if we can possibly avoid it, so part of my agenda involves the=20
hope that we can figure out what is needed for=20
internationalization and then say "if you need=20
internationalization, then you need the following list of=20
changes -- but as _one_ ESMTP option (a bundle, if you prefer),=20
not an "internationalization profile".

That said, the over-general name has its origin in the -00=20
version of this draft, back when the alternative seemed to be an=20
MUA-only IMAA and before any of us had really sorted through the=20
issues that started leading to, e.g., "UTF-8 in the headers"=20
proposals.

>>> - Regarding point 3. in 4.1, and point 7.2, I think allowing
>>>   anything else but UTF-8 should not only be strongly
>>>   discouraged, it should be forbidden.
>>
>> Absolutely so! No doubt about it! The eventual standard will
>> contain wording like "the use of UTF-8 is REQUIRED", "it is
>> FORBIDDEN to use  other charsets".

I prefer that type of answer (see my comments about profiles=20
above and elsewhere).  Fewer choices equals better=20
interoperability.  But I think it is irresponsible to discard=20
the other options before thinking about their strengths and=20
weaknesses.

>> The bad news is that this will not stop people (especially
>> the Chinese,  but
>> the French can be a bit awkward too) from doing it. The trick
>> is to make sure that the people who insist on violating the
>> standard all do so in a consistent manner, and one that can
>> be distinguished from the real thing  -
>> at the same time without admitting in the standard that such
>> a thing  might
>> be possible.
>>
>> So the way to do that is to ensure that there is a header
>> somewhere that could have contained a "charset=3D..."
>> parameter, and then to point out in very strong terms that
>> there is NO such parameter in that header, and  that
>> it is FORBIDDEN to include one. That should give them the
>> hint to do the "right thing".

I have my doubts that this is either necessary, or sufficient if=20
it is necessary.  And I think it would be more realistic to=20
write a gateway spec that says, more or less, "if you are going=20
to inject your stuff into the public Internet, it needs to look=20
like this; otherwise, it will probably be trashed beyond=20
recognition" (there are, of course, some statements equivalent=20
to that in 2821).  The advantage of this over a header or=20
parameter (or the absence thereof) is that it delineates the=20
strange things that are done "within an environment" or "for=20
local use" from what is interchangeable over the Internet. But=20
this is precisely an example of "exploring options" that I=20
implied above.

>> Anyway, now to some specific points:
>>
>>> 2. Three Models for Transition
>>>
>>>   1.  Avoid any more infrastructure changes than are
>>>   absolutely necessary.  ................
>>>
>>>   2.  Use a transport-level negotiation model of some
>>>   variety to ensure that the recipient machine can and will
>>>       accept the format and structure of the message and
>>>       options being sent.  ........
>>>
>>>   3.  Start a conversation about discarding more or less
>>>   everything and moving toward a "next generation" of
>>>       Internet mail in the hope of a huge gain in elegance,
>>>       capability, or other functions.
>>
>> I think there are a couple more strategies to add:
>>
>>     4.  Do it as an "experimental protocol" (this is not
>>     exclusive with the others, of course, and it is not an
>> 	excuse for not designing it properly). The advantage of this
>> 	approach is that you can ignore the naysayers and
>> 	nit-pickers on the grounds that "it is only for those who
>> 	want to try it out"; it is more easily forgotten if it fails
>> 	ignominiously; and you can afford not to be backward
>> 	compatible, especially in areas where you believe that no
>> 	current software implements (or ever implemented) that
>> 	obsolete feature, or that 99.999% of existing
>> 	implementations already allow what you want.

Yes, mostly.  Note that, if any type of ESMTP negotiation is=20
needed, the 99.999% argument does apply.  With such negotiation,=20
the argument for backward compatibility need not significantly=20
apply -- even though there are huge arguments for maintaining as=20
much compatibility as is reasonably possible, including the=20
all-important issues of getting things actually deployed.  And,=20
without such negotiation, things rapidly deteriorate toward the=20
justifications for your next strategy.

>>     5.  "Just do it". This, of course, is an extremely bad
>>     strategy from an IETF point of view. Indeed, it is not a
>> 	strategy at all (so let us call it a "pseudo strategy").
>>
>>         But the point is that this pseudo-strategy is already
>>         in widespread use. Indeed, I would think that 50% of
>> 	innovations were first introduced because "people tried it
>> 	and it worked", and then it was perhaps standardized later,
>> 	but reluctantly so because the feature had been poorly
>> 	designed but was now too entrenched to change.
>>
>>         But the danger is that this is just what will happen
>>         in the case of 8-bit headers of any form UNLESS we
>> 	step in soon to provide a "respectable" way of doing it.
>> 	Indeed, it is already happening, and maybe it is already too
>> 	late.

I am certainly sympathetic to this position.

>>> 3.4.2 Relay environment
>>>
>>>   .....  If internationalized addresses are important to the
>>>   destination host, its administrators will chose
>>>   lower-preference MX hosts or other relays that can support
>>>   internationalized addresses.
>>
>> Here you make an argument why the receiving MTA needs, and
>> can be  expected
>> to have, I18N capability.
>>
>>> 3.4.3 Internationalizing the Sender
>>
>> But here you seem to say that you do not expect the sending
>> MTA to need that capability. I find this odd.
>>
>> Now this difference might make good sense if all you have is
>> the I18N-ENVELOPE extension, but if you have the
>> UTF-8-HEADERS extension as well, then it is not so simple.
>>
>> Suppose that Alice communicates with B=F8b (observe the 'funny'
>> spelling of B=F8b, and assume that his email address is also
>> 'funny', as in [email protected]).
>>
>> Since B=F8b advertises an I18N address, we may assume that he
>> has an I18N-enabled MUA, and is reached through an
>> I18N-enabled MTA. Even if Alice is not so enabled, there may
>>...
>> Note that Address-Map headers would be of no assistance in
>> this scenario. Neither would encapsulation (NAIUI), nor would
>> the "friendly gateway" suggested in 3.4.3 (though it might be
>> fine in the Alice->B=F8b direction).
>>
>> No, I think bouncing to B=F8b is the best solution since it is,
>> after all, B=F8b's problem.

I think this analysis is precisely correct, and hope that others=20
will study and understand it.  The text which you cite was not=20
rethought and rewritten between -01 and -02 and obviously should=20
have been.  Encapsulation might help if Alice's MUA can do it=20
locally for outgoing messages, but, since implementing UTF-8=20
headers is probably less trouble, I wouldn't expect to see a lot=20
of that option. I should note that there is an important dispute=20
in the community between

	* Those who believe that some judicious message-bouncing
	in situations like this will cause software to be
	upgraded and/or users to make other arrangements (of
	software, providers, or the addresses they are using) in
	fairly short order.
=09
	* Those who believe that bouncing any message that could
	possibly have been delivered will irritate users and
	cause any possible extension mechanism to fail.

I think that, for this case, the arguments are stronger for the=20
first position, partially because the latter position tends to=20
lead to either "no progress" or horrible kludges, but others=20
have reached the opposite conclusion.

   regards,
      john