Re: [exim] IDN, UTF-8 and Punycode curiosity

Góra strony
Delete this message
Reply to this message
Autor: Cyborg
Data:  
Dla: exim-users
Temat: Re: [exim] IDN, UTF-8 and Punycode curiosity
Am 04.01.2012 02:24, schrieb Phil Pennock:
> You have to use xn--caf-dma.co.za in your backend .. nothing else will
> work.
>>
>> I have never used it, but doesn't setting allow_utf8_domains and
>> adjusting dns_check_names_pattern do the job?
> It depends upon the client software; the official IETF approach is to
> use Punycode, but another approach is to just put UTF-8 straight into
> DNS -- the argument (which I agree with) is that those who want to work
> with that part of the world which needs this will upgrade DNS and those
> who don't won't, and it's a lot less work to support UTF-8 than to
> support Punycode translations everywhere.

I personally only would let the DAN's-workinggroup* work on DNS, they
know what they do most of the time.

You don't need to put punycode everywhere to work with it, thats the
brilliance of it. If you have your most loved
mailclient , which is not aware of utf8 , use the punycode version of
your desired domainname and it still works.
It is uncomfortable that way, but hey it works without any additional
problem on the levels below or with any other software around.
It even works in Japan :)

> I personally run with those two settings, but to my knowledge I've never
> sent or received mail which depended upon them. One of the TODO items
> on my plate is Punycode support in Exim, to better play with the IETF
> vision of how complex the world should be.
>
> I haven't yet had time to do so.
>
>

If I may,

UTF-8 breaks DNS in so many ways on so many different levels it's not
worth thinking about. The IETF's approach to the problem is
gigantic on the inside, but very simple on the outside and it works with
everyone, everywhere and even back in time.
I made the first port for the Amiga, and that's an old system, without
vendor support or whatever. If It's possible there,
any japanese engenieer should be able to port it to modern systems and
software instead of making his own dirty solution to the problem.

The ideal implementation results in two simple to use functions like the
Java 1.6 implementation does.
You just cover all input/output domainnames with one of those functions
for encoding_to and decoding_from idn
and that's it. Those functions even check if they need to do something
at all ;) . I upgraded an entire ISP webapp/dns/daemonconfs etc.etc in
less then 10 minutes. With a good choice for your toolkit, you will ask
yourself why you waited so long :)

What makes me wonder is, why Exim should get into this mess at all. It's
a MTA and as one it's not involved
in the process of converting / displaying or encoding domainnames,
that's the job of the mailclient. I loved Exim for
being the most RFC guided MTA and now i read it's operating in sendmail
style ;)

best regards,
    Marius


*) Dan Bernstein and Dan Kaminski :)

IDN Example:

http://docs.oracle.com/javase/6/docs/api/java/net/IDN.html

import java.net.IDN;

public class test {
         static public void main(String[]  args) {
                 System.out.println( IDN.toUnicode("xn--sf-bcher-95a.de") );
                 System.out.println( IDN.toASCII("sf-bücher.de") );
         }
}