Support for Internationalized Domain Names and Email Addresses
In August 2010, the IETF published the specifications for Internationalized Domain Names (IDNs) as RFCs 5890 through 5894.
In February 2012, the IETF published the specifications for Email Address Internationalization (EAI) as RFC 6530.
As far as I can tell, Mailman will not let me include an email address that uses IDN or EAI as a mail list recipient. Has anyone figure out how to use either one of these?
Thanks in advance, Russ
Russ Housley writes:
As far as I can tell, Mailman will not let me include an email address that uses IDN or EAI as a mail list recipient. Has anyone figure out how to use either one of these?
It's up to Mark, but I doubt this will be done in a Mailman 2 release, it's a bit tricky and seems likely to require invasive changes to get display on web pages right and so on. Please file an RFE for Mailman 3, though.
For now, the algorithms are widely implemented in MUAs and language libraries. If you can't find a program to do it yourself (eg, on PyPI or Sourceforge), you could always scrape the address out of the off-the-wire headers using "view original" (or whatever feature your MUA offers) on mail from those addresses. (As always in email header fields, it's somehow encoded in ASCII -- the MUA has to convert to viewable form.)
Sorry I can't be of more direct help today, it's "remove alligators before draining swamp" time at $DAYJOB.
Steve
Steve:
As far as I can tell, Mailman will not let me include an email address that uses IDN or EAI as a mail list recipient. Has anyone figure out how to use either one of these?
It's up to Mark, but I doubt this will be done in a Mailman 2 release, it's a bit tricky and seems likely to require invasive changes to get display on web pages right and so on. Please file an RFE for Mailman 3, though.
For now, the algorithms are widely implemented in MUAs and language libraries. If you can't find a program to do it yourself (eg, on PyPI or Sourceforge), you could always scrape the address out of the off-the-wire headers using "view original" (or whatever feature your MUA offers) on mail from those addresses. (As always in email header fields, it's somehow encoded in ASCII -- the MUA has to convert to viewable form.)
Sorry I can't be of more direct help today, it's "remove alligators before draining swamp" time at $DAYJOB.
Thanks for these thoughts while you are extremely busy.
My add addresses that include IDN or EAI have not worked. Subscriptions are rejected.
Russ
On 07/20/2016 10:51 AM, Russ Housley wrote:
My add addresses that include IDN or EAI have not worked. Subscriptions are rejected.
This is going to be tricky. Several things need to be considered.
First, Modifications to the ValidateEmail() function in Mailman/Utils.py may be required. This will depend on how the address is to be represented in Mailman. If Mailman's internal representation is to be the "on the wire" encoded address, this may not be required.
There will also probably need to be changes to the MemberAdaptor (default Mailman/OldStyleMemberships.py) in the various methods that test membership add membership and set/retrieve various attributes, depending on exactly how these addresses are to be represented internally in Mailman. I haven't researched exactly what's involved in IDN and EAI encodings, so if Mailman's internal representation is going to be what the address looks like "on the wire", there MAY not need to be changes in this area.
There also need to be changes in the web UI to allow mass subscribing such addresses and properly displaying them. This raises the issue of what to do if an address contains a character not representable in Mailman's character set for the list's language. (This is simpler in MM 3 because everything is Unicode and UTF-8.)
In short, it is possible (I don't know for sure) that we could store addresses internally in their "on the wire" encoded form, and changes to ValidateEmail() and the MemberAdaptor may not be required or may be very simple. The hard part will be translating between the "on the wire" form and the display form in the web UI.
This definitely needs to be addressed in Mailman 3. As far as Mailman 2.1 is concerned, I probably won't try to do it, but if someone wants to try to implement this in a fork of the bzr branch at <https://code.launchpad.net/~mailman-coders/mailman/2.1>, I will definitely consider a merge request.
For Mailman 3, it would be good to file an issue at <https://gitlab.com/mailman/mailman/issues> so we have something to pin it to.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
Russ Housley writes:
My add addresses that include IDN or EAI have not worked. Subscriptions are rejected.
If you are using the wire-format of IDN addresses, ie, after being encoded to A-labels (ASCII characters in the IDN form), then it should work: those are valid mailboxes as ASCII.
If you're using EAI, lists are (generally speaking) problematic. EAI requires the SMTPUTF8 extension to SMTP in *all* relays involved. Are you sure all your subscribers are SMTPUTF8-capable? (That's a real question, I can easily imagine you're in a situation where you do know.) If not, an EAI address will likely DOS those that aren't. Note that it's not unlikely in most contexts that some of them forward to systems which don't support SMTPUTF8.
What can Mailman do?
Unfortunately, implementing EAI in Mailman is going to require a lot of thought for Mailman development and for site administrators, since enabling SMTPUTF8 in the MTA means that EAI subscribers will likely *send* messages from their EAI addresses. That means that those messages will *hard bounce* at recipient sites (or their secondary MXes) that do not support SMTPUTF8, and you'll be DMARCing[1] those subscribers into oblivion -- they simply won't receive that mail, and maybe they even get unsubscribed (I suppose that the bounce will have a special status code which Mailman can recognize, though). Unless Mailman's host MTA is smart enough to DTRT (but what's that?) with the EAI address and resend. But I don't want to think about what resending means for things like DMARC,[2] and IIRC the EAI RFC did a lot of handwaving about intermediate sites -- and assumed they were pure "next hop" forwarders, not mailing lists, in that discussion.
Mailman also is installed at a lot of sites where the default encoding is not UTF-8. This probably isn't a problem (it may even be a non-problem), but it needs consideration in dealing with web interface and error messages.
I also worry about whether the big poorly administered domains like AOL and Yahoo![3] will treat such addresses as a spam signal. So far *all* of the mail I've received with raw UTF-8 in the header has been spam. (I'm not judging EAI users, of course, I'm simply remarking on a particular sample with distressing implications if it turns out to be at all representative.)
Footnotes: [1] The analogy is quite exact -- certain sender addresses cause innocent subscribers to bounce the post.
[2] Theoretically there are a couple of proposed protocols that might help, but we have no idea whether there will be any uptake of them. The past behavior of Yahoo!, Hotmail, and AOL suggests pessimism is in order.
[3] Usually not the technicians' fault, but rather management that prefers losing mail to delivering spam ever.
participants (4)
-
Mark Sapiro
-
Russ Housley
-
Stephen J. Turnbull
-
Stephen J. Turnbull