В случае, если вы используете Spring Framework и MimeMessage для отправки электронной почты, попробуйте установить содержимое с помощью MimeMessagePreparator следующим образом (я пропускаю метод mimemessagepreparator getMessagePreparator, так как важная вещь - это как установить содержимое):
// Create the message helper from the received mimemessage on the preparator
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
// ... include the from, to, subject, freemarker html generation here... text is the String variable with generated html
// Set the content as follows instead of helper.setText(text, true);
helper.getMimeMessage().setContent(text, "text/html;charset=utf-8");
Это сработало для меня, и браузеры правильно отображают символы при отправке электронных писем.
Предполагаемые классы:
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.javamail.MimeMessagePreparator;
import javax.mail.internet.MimeMessage;
Также убедитесь, что в вашем рабочем пространстве по умолчанию используется кодировка UTF-8 для файлов шаблонов, если щелкнуть правой кнопкой мыши на их свойствах, если вы используете eclipse IDE.
Надеюсь, это поможет.