Addresses at emoji and non-Latin domains

·

Mail servers speak ASCII. They always have — the protocol predates the idea that a domain might contain anything else. So an address at 🎅.example or пошта.укр cannot travel as written; it travels as a translated form called punycode, and everything about these domains follows from that.

How the translation works

Punycode encodes any Unicode name into a plain ASCII string that starts with xn--. It is reversible and unambiguous — the same emoji always produces the same string.

What you typeWhat actually travels
🎅xn--8j8h
поштаxn--80adcxbmm

The punycode converter does the translation in both directions. You need it twice: once to find out what to search for at a registrar, and once when something asks for the address in ASCII.

Converting an emoji to punycode

Registering one: the part usually left out

⚠️
Most registries do not allow emoji at all. The common zones — .com, .net, .org and nearly every country zone — reject them outright. A handful of registries permit them, and that handful changes. Check the rules of the specific zone before paying for anything: a registrar will happily take an order for a name the registry will then refuse.

Non-Latin scripts are a different and much easier case. Internationalised domains in Cyrillic, Greek, Arabic, Chinese and others are supported by many registries and behave like ordinary domains — the punycode translation is the same, but nobody has to be talked into allowing it.

Then point it here

Once the domain is registered, it needs the same single MX record as any other — the exact values are here. Enter the record in whichever form your registrar's panel accepts; some show the Unicode name, some the xn-- form, and both mean the same thing.

Where these addresses break, and what to do

They work in mail, and they fail in forms. Sign-up validators are written by people who assumed a domain looks like example.com, so an emoji address is frequently rejected as “invalid” by software that never considered it.

The workaround is the punycode form itself: type name@xn--8j8h.example instead of the pretty version. It is the same address — the same one the mail server will see either way — but it passes validators that only understand ASCII. Older phones and mail clients that render the pretty form as boxes are the same problem with the same fix.

ℹ️
Worth knowing before you commit: an emoji domain is a nice trick and a poor default. If the address has a job to do — receiving codes from services you do not control — a boring domain gets refused far less often.

All articles