Вы используете один и тот же почтовый сервер в обоих случаях?И та же самая клиентская программа для просмотра сообщения?
Для отладки непосредственно перед вызовом Transport.send добавьте:
message.writeTo(new FileOutputStream("msg.txt"));
и затем проверьте файл msg.txt, чтобы увидетьсимволы правильно закодированы.
Как создать текст в строке mailMessage?Если вы не создадите строку с правильными символами Unicode, никакая кодировка не сделает это правильно.
Кроме того, вам никогда не нужно явно устанавливать заголовок Content-Type, удалите эту строку.
И вместо setContent используйте:
messageBody.setText(mailMessage, "html", "utf-8");
Это гарантирует, что заголовок Content-Type установлен правильно и параметры (например, charset) указаны правильно.