Feature #29208

IDN support for email addresses of user accounts

Added by Go MAEDA 15 days ago. Updated 13 days ago.

Status:NewStart date:
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:Accounts / authentication
Target version:4.1.0
Resolution:

Description

This is a patch to add IDN (internationalized domain names) support to email addresses of user accounts.

Currently, Redmine does not accept IDN email addresses like "joe@ドメイン名例.jp" and its ASCII expression "" when creating/updating a user account. After applying this patch, both expressions will be accepted.

According to IDN World Report, there are approx 8.7 millions IDNs in the world as of December 2016, and those are used in many countries. To support IDN email addresses should be beneficial for many people.

This patch converts Unicode domain names to traditional ASCII domain names just before saving an email address. However, it does not convert ASCII domain names to Unicode domain names when displaying email address. Users will see ASCII expression "" on my_account page even if they have entered Unicode email address "joe@ドメイン名例.jp".

This approach can minimize the change to existing code and works fine with IDN-unaware MTAs and plugins while allowing people to use IDN email addresses.

"Email" field accepts Unicode domain names:

ASCII converted email address is shown after saving:

References:

idn-support-screenshot-1.png (25.9 KB) Go MAEDA, 2018-07-07 08:57

idn-support-screenshot-2.png (30.5 KB) Go MAEDA, 2018-07-07 08:57

support-idn-email-addresses.diff Magnifier (2.21 KB) Go MAEDA, 2018-07-07 08:58

support-idn-email-addresses-v2.diff Magnifier (2.23 KB) Go MAEDA, 2018-07-07 09:27

support-idn-email-addresses-v3.diff Magnifier (1.97 KB) Go MAEDA, 2018-07-07 09:59

support-idn-email-addresses-v4.diff Magnifier (2.13 KB) Go MAEDA, 2018-07-08 07:40


Related issues

Related to Redmine - Defect #28878: Email does not support Russian-language domains. New
Related to Redmine - Defect #15985: Email address with non-ASCII character causes delivery error New

History

#1 Updated by Go MAEDA 15 days ago

  • Related to Defect #28878: Email does not support Russian-language domains. added

#2 Updated by Go MAEDA 15 days ago

  • Related to Defect #15985: Email address with non-ASCII character causes delivery error added

#3 Updated by Go MAEDA 15 days ago

Fixed unnecessary Punycode conversion when an invalid email address is entered.

#4 Updated by Go MAEDA 15 days ago

Removed unnecessary "require 'simpleidn'".

#5 Updated by Go MAEDA 14 days ago

Updated the patch.

  • Simplified the code by replacing String#rpartition with String#partition.
  • Added tests to make sure that local-part is not encoded with Punycode.

#6 Updated by Go MAEDA 13 days ago

  • Target version set to 4.1.0

As we can see in #28878, there are already people who are in trouble because of lack of internationalized domain name support. I think that more and more people will start using email addresses with IDN. Let's deliver this feature in the next major release.

Also available in: Atom PDF