emailunicodeinternationalizationdomain-name

Are email addresses allowed to contain non-alphanumeric characters?


I'm building a website using Django. The website could have a significant number of users from non-English speaking countries.

I just want to know if there are any technical restrictions on what types of characters an email address could contain.

Are email addresses only allowed to contain English letters, numbers, _, @ and .?

Are they allowed to contain non-English alphabets like é or ü?

Are they allowed to contain Chinese or Japanese or other Unicode characters?


Solution

  • Email address consists of two parts local before @ and domain that goes after.

    Rules to these parts are different:

    For local part you can use ASCII:

    Plus since 2012 you can use international characters above U+007F, encoded as UTF-8.

    Domain part is more restricted:

    Regex to validate

    ^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})

    Hope this saves you some time.