Re: Problems of Internationalized Mail Address eXtensions (IMAX)

Simon Josefsson <[email protected]>
Newsgroups gmane.ietf.imaa
Message-ID <[email protected]>
Paul Hoffman / IMC <[email protected]> writes:

> At 1:50 PM +0100 2/25/03, Simon Josefsson wrote:
>>>> Punycode decoding is not optional if the MTA wants to support
>>>> non-ASCII.
>>> Where in the IMAA document does it say that? I believe you are
>>>  completely wrong here.
>>
>>Are you saying that if I implement a MTA and want to support non-ASCII
>>mail addresses in the places where MTAs use ASCII mail addresses
>>today, that MTA need not implement punycode decoding?
>
> You are (again) confusing the protocol with the implementation. The
> protocol does not require these things; the implementation might.

Right, I was talking about the implementation, I tried to make that
clear by saying "the MTA" rather than "the specification".  Isn't (one
of) the goal of the IMAA protocol to make it possible for MTA
implementations to support non-ASCII?  Then whether the implementation
or the specification is generating the requirement seems like an
academic point.  The end result is that punycode decoding is required
in the implementation, which is what I consider the problem.  If a
solution that didn't involve encoding techniques such as punycode
could be developed, I think that should be preferred.

>>If so, how would you translate an incoming punycoded string into
>>non-ASCII data that is stored in the log file, for instance?
>
> MTA implementations that want to write into log files already need
> Punycode decoding for the host names. Your complaint here is invalid.

Obviously we are interpreting IMAX differently, or you wouldn't say
that.  Now that you write this I would agree that IMAX is unclear on
one thing: does IMAX make the RHS of the email address a (in IDNA
terminology) a IDN-aware domain name slot?  I think it should.  It
doesn't make sense to negotiate non-ASCII and then simply don't take
advantage of that and use IDNA for the RHS, treating it as a
IDN-unaware domain name slot.

IMAX authors, perhaps add an example (and text to go with it) that
illustrates non-ASCII RHS too.

MAIL FROM:<UTF-8=E4=E8@=E6=E96=E87.com>

if this is what you intend?  The alternative would be

MAIL FROM:<[email protected]>

but then IMHO the whole point of IMAX falls: that you can support
non-ASCII using raw charset encodings instead of application specific
encodings.

I interpreted IMAX as providing a IDN-aware domain name slot for the
RHS too, where you could send non-punycoded data.

>>If you are saying that the MTA should put the IMAA encoded mail
>>address in the log file, I'd say then that MTA doesn't support
>>non-ASCII.
>
> You are free to say that. Others would disagree. In the case of IMAX,
> what would you want in your log file. All UTF-8? That means you need
> converters from every accepted charset to UTF-8. Careful sysadmins
> would probably want to know *exactly* what came in, not some converted
> form, but that means that their log file would have multiple charsets
> in it, which would make display a mess. A reasonable option is to
> store the addresses as ACE and to have a log-file viewer that converts
> on display (and has an option for not converting).
>
> Again, this is an implementation issue, not a protocol issue.

Yes.  But it is an important point.  A internationalization solution
that doesn't consider these practical issues is of only theoretical
value.

I would want the log file to contain characters that can be read
without special IDNA/IMAA/IMAX aware programs.  I.e., if the system
uses UTF-8 as the system encoding, I'd want the log file to be in
UTF-8.  If the system uses ISO-8859-1, the log file should be in
ISO-8859-1 (and the application must cope with data that can't be
represented somehow).

Yes, the application must know how to convert alien (but charset
tagged) data into the system charset.  But IDNA and IMAA have the same
characteristic: it require the application to convert Unicode (which
is the only charset IDNA/IMAA accept) to the system charset.  So I
cannot see where the big difference lies?

I agree careful sysadmins want to see exactly what came in.  The only
way to represent that, unless the system uses the same charset as the
data that came in, is to print the charset of the incoming data and
the byte sequence.  The same is true today on a ISO-8859-1 system that
receives Unicode via IDNA.

It seems we disagree that it is reasonable to require users to use
special applications to view log files, or edit configuration files,
etc.  Personally, I don't use applications that have configuration
files or log files that can't be manipulated using text operations.  I
do suppose many Microsoft Windows users would find your approach
acceptable though, since that's what they are accustomed to.  IMHO a
solution must be able to accomodate both users.

>>   An essential feature of supporting non-ASCII is to make it
>>possible for the user of the application to actually see the
>>characters.  ASCII encoding them and displaying them to the user
>>doesn't make the application support non-ASCII in practice.  It would
>>be like claiming to support Unicode in a terminal emulator when it
>>only displayed Base64 encoding of the UTF-8 encoded Unicode code
>>points.
>
> IMAA describes in detail when and how to display the Unicode form to
> the user; IMAX mostly glosses over this.

Yes, IMAX is not a final document so this isn't surprising.  Although
for IMAX, those issues are simpler since IMAX allows implementations
to use charsets that the system already support natively.

>>  >>A punycode encoder is required if the MTA handle non-ASCII data in
>>>>decoded, normal, format.  Like in the user interface for /etc/aliases,
>>>>/etc/mail/virtusertable etc.
>>>
>>>  Neither of those are controlled by the MTA. This is getting pretty silly.
>>
>>That was not a generic example, it was an example for one MTA
>>implementation: Sendmail.  It uses and control those files.
>
> And, again, you are mixing up protocols with implementations.

I'm sorry, I'll try to make it more clear when I talk about the
implementation or the specification.  If you are saying that we should
simply ignore all implementation related aspects in a proposed
solution, then I guess I simply don't agree with that.  I'll continue
to relate a proposal to the real world.

>>  >>   If it doesn't handle non-ASCII in normal
>>>>format, it might as well not support non-ASCII at all since the user
>>>>would never notice the different.
>>>
>>>  You are mixing up the MTA and the MUA.
>>
>>I wasn't clear.  I meant the user of the MTA, i.e., the administrator.
>>Administrators have non-ASCII requirements too.
>
> Correct, and IMAA describes when and how to convert for display.

Right.  This is what cause the dependence on punycode decoding.  Since
administrators not only view non-ASCII but input non-ASCII too,
punycode encoding is required too.

>>MTA implementations, nor internationalization solutions for MTAs,
>>exist in a vacuum.  If it is impossible to implement an
>>internationalized product and being compliant, the specification has a
>>problem.
>
> Of course. Nothing in IMAA makes it "impossible to implement an
> internationalized product".

Cool.  Then, perhaps, what we have is two solutions that can implement
an internationalized product.  I'm trying to convince myself which of
them is the better approach.

>>  > But you keep talking about the need to handle fallback. Handling two
>>>  protocols is not easier than handling one in any universe.
>>
>>True.  Yes, the fallback is a problem.  Hm.  Perhaps those interested
>>in non-ASCII need to require the use of modern software at the
>>receiver and the sender, then implementations doesn't need to
>>implement the fall back case.
>
> That's not what the IMAX document says.

Right, I proposed something new.

> If you want to propose a ESMTP extension with no fallback, either
> change IMAX or create your own Internet Draft. In either case, you
> will have to say explicitly how this will interact with SMTP servers
> that do not support the new protocol, how bounces would be handled,
> how users would know if they could send a message, and so on. I
> think when you write that, if you do so honestly, you will see that
> it would be silly to propose such a solution.

Discarding it as silly seems a bit premature to me.  Having such a
proposal, that discusses all the consequences you mention seems like a
valuable contribution to this discussion.  But I guess it is easier to
advocate one solution if the competition are discarded early on...

>>  >>  > Clean is in the eye of the beholder. You and I like UTF-8, but many
>>>>   > people don't. Forcing them to use our preferred charset isn't a good
>>>>   > practice if it can be avoided.
>>>>
>>  >>I agree completely.  This is one of my problems with IDNA and IMAA, it
>>>>forces Unicode on everyone.
>>>
>>>  Unicode is not a charset.
>>
>>I'm not sure if you genuinely missed my point due to this
>>misunderstanding, but assuming you did, let me correct myself: replace
>>"Unicode" with "Any charset encoding format of Unicode".
>
> I think I hear you saying that you think that the protocols should
> allow any repertoire and any encoding of those repertoires. If so, we
> certainly disagree. The IETF is not very keen on creating protocols
> for which there would be limited and unpredictable
> interoperability. Other standards group might not be so picky.

That is stretching it a bit, I think.  I believe that a solution worth
its salt should consider existing habits, and whether we like it or
not there is more than charset used on the Internet.  MIME appears to
acknowledge this and is rather successful.  HTML acknowledge this and
is rather successful.  Same for HTTP.  Come to think of it, I can't
recall any successful internationalization product the IETF has
produced to counter my examples, can you help me?

If you are speaking for IETF, I find it interesting that RFC 2277
"IETF Policy on Character Sets and Languages" says that protocols MAY
allow use of any repertoire.  It doesn't say that it is a bad idea to
allow more than one charset.  I agree with that document, let's
require the use of UTF-8 in protocols, but allow negotiation of other
charsets to smooth transition and deployment.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.