IDN and EAI Support in Thunderbird

Joshua Cranmer 🐧 pidgeot18 at
Fri Feb 20 01:02:15 UTC 2015

On 2/19/2015 1:46 PM, Jothan Frakes wrote:
> Hi-
> I am a fellow volunteer on a separate project (the Public Suffix List) 
> within the Mozilla community for quite a while, and I have been a 
> member of the ICANN community since ICANN formed (and before).
> Anyway, pardon this ask, as I am unfamiliar with the Thunderbird 
> development realm.
> I am writing about IDN and EAI support being added to Thunderbird, 
> across all supported platforms.
> Some context and background on IDN (Pardon this if you're familiar):

I am personally familiar enough to have produced a rant on thus subject, 
although the same is not true of everybody on the list :-)
> There are some really interesting circumstances that can occur with 
> EIA where a right to left language like Hebrew or Arabic might be on 
> the left hand of the @ with a left to right language TLD (Or 
> Vice-Versa) which can reverse the display of the address and be 
> potentially confusing.

And case insensitivity, Unicode normalization, and things like C1 
controls. Oh, and the IDNA2003/IDNA2008 charlie foxtrot.

> *Not knowing decorum here, I'll just throw this out there....  Could I 
> get an idea around a] IF these enhancements are possible / probable, 
> and b] if yes, what perhaps costs are on this? I may be able to locate 
> a patron for this effort / find / fund sourcing for accomplishing them.*
I've thought about EAI and IDN in the past (I can't find the post right 
now). At present, we can send to an IDN email address, but that's about 
the limit of our support--the core code chokes on IDN (even if you use 
A-labels--some core Gecko code "helpfully" normalized that back into the 
U-label and screwed up the match).

The rough work list of what needs to be done:
1. Add support to use EAI/IDN addresses when composing messages, and 
handle appropriate downgrading when necessary [I'm already rewriting the 
MIME message building portion of the backend, and I'm definitely 
planning on making sure this gets addressed].
2. Add proper validation support for EAI/IDN addresses, and permit their 
use in appropriate places in the UI.
3. Ensure that we normalize addresses to the proper format for, e.g., 
database comparisons or searching.
4. Handle the IMAP and POP requests to enable EAI properly.
5. Support using an EAI/IDN email address as an account.
6. Miscellaneous other places where we need to support email addresses 
(e.g., S/MIME certificate matching).

The main problem of doing this work is first, one needs time to get all 
of this done, and, second, the major open-source implementations (e.g., 
postfix, cyrus) haven't implemented necessary protocol support yet, so I 
can't test real-world usage scenarios for EAI. (IDN is fairly simple 
test via use of VMs and DNS).

> Also, I notice there is a day left in before Summer of Code deadline, 
> but I suspect this request might be larger than a single line item (or 
> two).  Is that an appropriate place or is this too late to reasonably 
> accomplish this?

I'm not sure this is a good match for a GSoC project. The parts that 
don't rely on protocol support boil down to a few weeks or a month of 
hunting down issues in the UI and fixing them--not enough to fill out 
the summer. Protocol support requires having access to test servers 
which are not easy to find or set up locally. Nevertheless, I would be 
happy to help someone else work on this topic outside of GSoC if they 
were available, or maybe even through GSoC if EAI-compliant IMAP and 
SMTP servers were available to a student.

Joshua Cranmer
Thunderbird and DXR developer
Source code archæologist

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the tb-planning mailing list