Краткий ответ будет нет .
Теперь я собираюсь уточнить почему .Правильно оформленное почтовое сообщение i18n поддерживает следующие функции:
- Поддержка интернационализированных доменных имен (IDNA) для заголовков From и To (а также CC, BCC, Reply-To и т. Д.)
- Узнаваемое и безопасное кодирование Subject и других заголовков
- Правильное кодирование тела
В настоящее время доменные имена i18n-ed являются базовыми строками ASCII, закодированными с помощью Punycode (вы можетеПодробнее об этом читайте в RFC 3492 , RFC 5891 и RFC 5890 ).Короче говоря, вы должны использовать класс IdnMapping
для преобразования из строки UTF-16 в ASCII (что можно сделать, вызвав метод GetAscii()
.
С помощью безопасного кодирования строки темы и других (не адресные) заголовки, я имел в виду, что на данный момент он все еще должен быть 7-битным безопасным, так как довольно много старых и устаревших агентов пересылки почты не поддерживают здесь 8-битные кодировки. Поэтому вы можете фактически поддержать выбор пользователяздесь, но если пользователь выбирает что-то вроде ISO-8859-x, KOI-8-x или Shift-JIS, я бы порекомендовал дополнительно кодировать заголовки, используя алгоритм Quoted Printable или Base64, просто для уверенности. Если пользователь выбирает UTF-8Вы можете кодировать заголовки с помощью UTF-7, а также QP или B64.
И последнее, но не менее важное: вы можете и даже должны поддерживать выбранную пользователем кодировку для тела сообщения электронной почты. Однако, если это 16-битовая база (например, UCS2 или UTF-16), я бы порекомендовал установить Transfer Encoding на что-то вроде Base64.