Я отправляю электронное письмо, и я получаю его правильно, но кодировка объекта неверна. Я посылаю "invitación", но я получаю "invitaci? N". Содержание сообщения в порядке.
Содержимое сообщения происходит от преобразования шаблона Velocity, когда объект задан в переменной String.
Я googled вокруг, и я видел, что некоторые люди говорят, что MimeUtility.encodeText() может решить проблему, но я не имел успеха с ней.
Как я могу решить проблему? Это код, который у меня есть.
String subject = "Invitación";
String msgBody = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "/vmTemplates/template.vm", "UTF-8", model);
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
try {
String encodingOptions = "text/html; charset=UTF-8";
Message msg = new MimeMessage(session);
msg.setHeader("Content-Type", encodingOptions);
msg.setFrom(new javax.mail.internet.InternetAddress(emailFrom));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(emailTo));
msg.setSubject(subject);
msg.setContent(msgBody, encodingOptions);
Transport.send(msg);
} catch (AddressException e) {
...
} catch (MessagingException e) {
...
}
Спасибо