By request: A step-to-step guide to installing/testing unicode addresses with Postfix. Perhaps overly detailed.
I'll use a new linux/ubuntu host here. As it happens, I use a 64-bit ubuntu 14.04 at Amazon.
The following commands prepare the host. This updates the host with the latest package database and packages, so that the later commands won't fail due to package inavailability or version conflicts.
apt-get update apt-get dist-upgrade
This installs Postfix (without unicode support), the mutt mail reader for testing, and ICU (for being able to compile Postfix with unicode):
apt-get install postfix mutt libicu-dev
(Update: As of Postfix 3.0.0, this command installs Postfix including EAI support. If this command installed Postfix 3.0.0 or later, you do not need to patch and compile.)
The Postfix installer asks what kind of installation you want
you must select
internet site, then it asks about your domain name
you add any domain name that you control. In this test I use
eai-aws-test-1.gulbrandsen.priv.no as hostname and for the mail
You will also need some other packages to compile Postfix, which the build-dep command retrieves:
apt-get build-dep postfix
The commands above produce several hundred lines of output. At the end the result should look somewhat like screenshot 3.
Add the host name to the DNS. Check that you can access this domain
from outside and access Postfix
(screenshot from another host).
Make an ordinary unix user, e.g. called
(screenshot), and switch to it:
su - test1
Start the Mutt program
and send mail (
m, enter the address, subject, message body,
then press control-x, enter, y). Quit mutt using the
then return to root using control-d and check the mail log
The log in my screenshot shows clearly that Postfix attempted to send
mail from and to the right addresses.
Reply to the test. On the test instance, run
which will show the reply in RFC822 format (screenshot). Now we know that the test can proceed. If something is broken, then that host is perhaps blocked from sending/receiving mail by a firewall.
Download the latest postfix. There are many download locations listed on the postfix site.
cd /tmp wget ftp://ftp.cuhk.edu.hk/pub/packages/mail-server/postfix/experimental/postfix-2.12-20140716.tar.gz tar zxf postfix-2.12-20140716.tar.gz cd postfix-2.12-20140716
Now you have the postfix source unpacked (screenshot). and are ready to compile:
make makefiles; make upgrade
Again, you'll get several hundred lines of output
Some of the lines that scrolled past ended with
Until at least September 2014, those have to contain
-licuuc. If yours
do not, stop here and find out why.
Enable unicode support by editing /etc/postfix/main.cf. You will have
to add the line
smtputf8_enable = yes, and you may need to set
myorigin to the domain name you selected above if it has
another value. Myorigin may even be specified twice.
shows a correct main.cf. Finally restart Postfix and test it:
postfix stop; postfix start telnet localhost 25 ehlo x
You will receive a reply that includes SMTPUTF8 (screenshot). If not, something has failed. To finish this test, issue
Now we know that Postfix claims to have SMTPUTF8 support. The next step is to send unicode mail from the test1 account. Mutt can do that, or this command:
su - test1 echo "To: jøran@blåbærsyltetøy.gulbrandsen.priv.no" | /usr/sbin/sendmail -t
About fifteen seconds later, a reply from jøran will land in /var/spool/mail/test1. You can watch the progress of the test by running
tail -f /var/log/mail.log
and then you can read the reply using
tail -20 /var/spool/mail/test1
The reply shows the message in RCC822/6532 format (screenshot of the last few commands). Notice that the ø letters are displayed correctly, both in jøran and in blåbærsyltetøy. Now we know that Postfix can send mail from an ordinary address to a unicode address on the internet, and receive a reply from a unicode address.
The next step involves a local unicode address as well. The ordinary linux tools are not happy about creating unicode logins, but here's how to rename test1 to testπ (the last letter is pi, ie. 3.14159…):
cd /etc for a in passwd shadow group; do sed 's/test1/testπ/' < $a > a ; cat a > $a ; done
Change to that user, and send mail again, then test that it works:
su - testπ echo "To: jøran@blåbærsyltetøy.gulbrandsen.priv.no" | /usr/sbin/sendmail -t tail -f /var/spool/mail/testπ
After a few seconds the autoreply will arrive (screenshot) and you have tested that your Postfix can send mail both to and from unicode addresses. Congratulations.
Note that in early 2015, installing Postfix with unicode address support will become much simpler. Further, the version I used above is good enough to test with, but should not be used for production. The spool format will almost certainly change in the coming months.