We now have support for EAI
(RFC 5336 SMTP
Email Address Internationalization), as I accomodated the patch of Arnt Gulbrandsen into my qmail
distribution. This means that from now on addresses containing UTF8
characters like mimì@domain.tld or even आर्न्ट@यूनिवर्सल.भारत will be accepted provided that the remote server advertises the SMTPUTF8
verb after the SMTP EHLO
. If the remote server doesn't advertise SMTPUTF8
capabilities, then the conversation goes as in the past with no allowed UTF8
characters in the email addresses, with a few exceptions for special chars as $%?*^~&/\\£#+_-.=
I also had to modify the Mail Address Verification program shipped by chkuser
because, if activated (CHKUSER_SENDER_FORMAT
and CHKUSER_RCPT_FORMAT
variables defined), it accepted only ASCII
characters plus a small set of additional UTF8
in user and domain names. And since I was there I simplyfied the code dropping a couple of functions and variables.
These are the relevant changes to chkuser
from the administrator point of view:
- The new vartiable
CHKUSER_INVALID_UTF8_CHARS
defines theUTF8
characters which are not accepted in the user and domain name even when theSMTPUTF8
protocol is in effect. It defaults to (),:;<>@[] CHKUSER_ALLOWED_CHARS
defines the set of characters which are considered valid in sender and recipient names when theSMTP
conversation goes as in the past with onlyASCII
characters. It defaults to $%?*^~&/\\£#+_-.=CHKUSER_ALLOWED_CHARS
replaces the oldCHKUSER_ALLOW_SENDER_CHAR_xx
andCHKUSER_ALLOW_RCPT_CHAR_xx
variables, which have been dropped (24 variables were too much).CHKUSER_ALLOW_SENDER_SRS
andCHKUSER_ALLOW_RCPT_SRS
have been dropped as nowadays we are always accepting the '+' '#' '=' for theSRS
. These characters must be present insideCHKUSER_ALLOWED_CHARS
.
As always, you can set these variables by editing the chkuser_settings.h file (look at the bottom of that file). But in most cases the default values are fine.
For the time being the EAI feature is published as a pre-release in today's version. This version is stable and works as in the past as far as the alpha numeric addresses are concerned, but needs to be tested sending to or receiving from UTF8
addresses.
Have fun!