On Mon, Dec 30, 2013 at 07:10:26AM -0500, Wietse Venema wrote:

> > IMHO Extending punycode to local part may be a good option for "mostly
> > ASCII" charsets (ISO-8859-X) but it may create (too) long names for
> > "completely non ASCII charsets".

Punycode is a rather efficient encoding.  There is little reason
to be concerned about the length of the localpart.

A more complex issue with Punycode is that address extensions are
problematic.  That said, address extensions are generated by the sender.
Provided the sender's system understands whatever form they take
when the sender's address requires encoding from UTF-8, the rest of
the world need not know or care about how that's accomplished at
each site.

Thus, Postfix would hypothetically need to be able decode from
Punycode to UTF-8, strip the extension, and re-encode when performing
address lookups without the extension in various databases.
Likewise, when generating VERP sender addresses, it would need to
decode, append the extension then re-encode.

IMAP servers that support extensions and also UTF-8 localparts
would need similar logic.

Finally, for human-readable bounces, one might want to include
both the Punycode and the UTF-8 form of the address in bounce
body text.

None of the above would be a major obstacle, or introduce
interoperability issues with remote systems.

> This transformation would be needed only when sending mail between
> systems that don't support non-ASCII addresses. Just like MIME
> 8-7bit conversion, the need for it goes away over time.

There are further complications.  To transition to native UTF-8
encoding one needs to modify LDAP schemas, X.509 extension encoding
rules, SQL database character encoding rules, ...  I expect the
Punycode localpart form would stay on the wire indefinitely, but
this is not a problem.

There would be a benefit to long-term Punycode localpart addresses.
Message recipients not familiar with the sender's native script
will generally be able distinguish distinct Punycode strings, and
will be able to begin to type the address into their email client
allowing the software to complete it, ...

-- 
        Viktor.

Reply via email to