Вы используете message.setText(text, true);
для установки текста сообщения, подразумевая, что это сообщение HTML. Если это обычный текст, а не HTML, попробуйте 'message.setText (text, false);'. Если это HTML, убедитесь, что кодировка правильно задана в заголовке и элементе? Xml - и да, используйте XHTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Demystifying Email Design</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
</html>
(подробнее о шаблонах электронной почты HTML здесь ).
Кроме того, когда у меня возникли проблемы с кодировкой писем в электронных письмах, я отправил их на учетную запись, настроенную в Mozilla Thunderbird, затем открыл почту в новой вкладке и, наконец, нажал «Еще»> «Показать источник». Это позволило мне увидеть письмо в точности так, как оно было отправлено почтовому клиенту, и проверить, правильно ли установлены все кодировки.
Наконец, если ничего из вышеперечисленного не поможет, вы можете попробовать сопоставить нелатинские буквы с их кодами Юникода, например. А до \ u0192, а до \ u0224 и т. Д. здесь - полный список.