Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

JavaMail. После отправке сообщения приходит письмо с краказябрами в поле адресата

Сергей Соловьев Ученик (179), закрыт 8 месяцев назад
Отправляю я email по smtp
Адресата указываю в формате: "Иван Иванов "
т. е
Message msg = new MimeMessage(session);

msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("Иван Иванов "));

Все сообщение корректно отображается с кириллицей, за исключением поля адресата сообщения, показывает так:
20= 20=>2
mail@mail.ru

Актуально для mail.ru, gmail.com, других не пробовал

Пробовал некоторые способы с форумов, но пока ничего не работает из этого
Лучший ответ
Андрей Высший разум (425191) 4 года назад
Открываю заголовки письма, пришедшего из "ответов" и вижу:
From: =?UTF-8?b?0J7RgtCy0LXRgtGLIE1haWwucnU=?= <otvet@corp.mail.ru>

=?UTF-8?b? - префикс: текст в кодировке UTF-8 закодирован в base64
0J7RgtCy0LXRgtGLIE1haWwucnU= - текст "Ответы Mail.ru" в base64
?= - суффикс: кодированная часть закончена
<otvet@corp.mail.ru> - e-mail в угловых скобках БЕЗ кодирования

Получатель письма кодируется аналогично.

Есть ешё такой вариант кодирования:
=?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9?=
В этом случае текстом является
=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9
а каждая тройка символов =XX - это код байта в 16-ричной системе.

Но опять же - кодируется имя, за которым в угловых скобках идёт не кодированный e-mail.
Сергей СоловьевУченик (179) 4 года назад
посмотрел во что кодируются русские буквы:
а0
б1
в2
г3
д4
е5
ж6
з7
и8
й9
к:
л;
м<
н=
о>
п?
р@
сA
тB
уC
фD
хE
цF
чG
шH
щI
ъK
ыL
ьJ
эM
юN
яO
Андрей Высший разум (425191) Причём здесь русские буквы? Есть текст, который имеет кодировку utf-8 (и совершенно не важно, русские там буквы или китайские иероглифы). Его дополнительно кодируют в base64, добавляют префикс и суффикс и в таком виде записывают в поле заголовка письма.
Остальные ответы
Похожие вопросы