Amazon SES - Персонажи, не являющиеся ASCII, в электронном адресе

Я пытаюсь отправить электронное письмо с помощью Amazon SDK для .NET и SES. У меня есть электронная почта, которая состоит из специальных букв, например:

ęxąmplę@źćż.com

Для части домена я читаю о Punycode и это прекрасно работает. Но для локальной части адреса я не могу найти решение: я попытался использовать RFC 2047 для всей электронной почты, но затем SES возвращает ошибку "missing final @domain", поэтому я попытался кодировать только локальную часть, поэтому электронное письмо будет

[email protected]com

но это, похоже, тоже не работает. Кто-то успешно решил это?

Ответ 1

Итак, вот что я узнал:

Спецификация базового адреса электронной почты SMTP (RFC 5322, раздел 3.4) не разрешает адреса электронной почты вне ограниченного подмножества 7-битного диапазона ASCII. Для поддержки адресов электронной почты, подобных тем, о которых идет речь, серверы отправки и получения должны поддерживать расширение SMTP, называемое SMTPUTF8, определенное в RFC 6531.

Согласно разговору, который у меня был со службой поддержки Amazon SES, SMTPUTF8 в настоящее время широко не поддерживается (23 ноября 2017 г.) и поэтому не поддерживает его. Их команда разработчиков работает над этим, однако они не имеют ни малейшего представления, когда и даже если это произойдет в производство.

Следующий комментарий, который в настоящее время содержится в документации .Net SDK о кодировке MIME, кажется чем-то вроде красной сельди.

По умолчанию строка должна быть 7-битной ASCII. Если текст должен содержать любые другие символы, то вместо литеральной строки необходимо использовать синтаксис MIME (RFC 2047). Синтаксис кодированного слова MIME использует следующую форму: =? Charset? Encoding? Кодированный текст? =. Для получения дополнительной информации см. RFC 2047.

Так как я поговорил об этом с Amazon, они, похоже, исправляют некоторые части документации, лучшее описание можно найти в документации API.

Amazon SES не поддерживает расширение SMTPUTF8, как описано в RFC6531. По этой причине локальная часть адреса электронной почты получателя (часть адреса электронной почты, предшествующая знаку @) может содержать только 7-битные символы ASCII. Если доменная часть адреса (часть после знака @) содержит символы не ASCII, они должны быть закодированы с использованием Punycode, как описано в RFC3492.

Ответ 2

Любое обновление здесь, если Amazon SES добавил поддержку UTF8 (не-ASCII символы в адресе электронной почты local-part)?