Единственный стандартный способ отправки символов, отличных от us-ascii, в локальную часть адреса электронной почты - через rfc6532 (интернационализированные заголовки электронной почты) и rfc6531 (расширение SMTP для SMTPUTF8).
Насколько я знаю, не существует стандартного способа кодирования символов non-ascii в локальной части адреса электронной почты, а именно:
Код Puny предназначен только для доменных имен, но неместная часть.Но у вас может быть локальная часть, которая выглядит как ничтожное кодирование какой-либо строки, но она должна отображаться в ее маленьком зашифрованном виде.Если почтовая программа решает отобразить ее после незначительного декодирования, это нестандартное поведение.
Механизм кодирования кодированных слов, упомянутый в одном из ответов (вещь =?utf-8?Q?foobar?=
), равен * 1016.* не применимо к локальной части почтового адреса, только к отображаемому имени почтового ящика (что-то другое, но связанное, т.е. то, что может отображать ваша почтовая программа вместо почтового адреса).
В конце концов это означает, что müler@example.com
и xn--mler-0ra@example.com
- это два совершенно не связанных друг с другом адреса электронной почты, которые имели бы одно и то же значение, если бы они были бы доменами (но ониони не могут конфликтовать).
Теоретически можно надеяться, что к 2019 году все почтовые серверы поддерживают SMTPUTF8, а все клиенты поддерживают интернационализированную почту, но, к сожалению, я бы не стал рассчитывать на это, если это важно.
Btw.бывает, что локальная часть адреса электронной почты является единственной вещью в стандарте (ах) почты, где вы, возможно, захотите использовать символы, отличные от us-ascii, и нет способа кодировать ее (насколько я знаю).Все остальные части имеют закодированное слово, маленькое число, процент, base64, цитируемый для печати или какой-либо другой вид механизма кодирования.