Делается так:
MimeMessage message = new MimeMessage(mailSession);
message.setSubject(subject, "utf-8");
сообщение в этом случае должно быть типа MimeMessage
, потому как в интерфейсе Message
нет метода setSubject()
с аргументом, указывающим кодировку.
Но можно сделать и так:
Message message = new MimeMessage(mailSession);
message.setSubject(MimeUtility.encodeText(subject, "utf-8", "Q"));
Для тела сообщения кодировка задаётся вместе с mime-типом:
message.setContent(bodyText, "text/plain;charset=UTF-8");