Estoy enviando un correo electrónico y lo estoy recibiendo correctamente, pero la codificación del tema no es correcta. Estoy enviando "invitación" pero estoy recibiendo "invitación". El contenido del mensaje está bien.Problema con la codificación del asunto al enviar un correo electrónico
El contenido del mensaje proviene de una transformación de una Plantilla de velocidad mientras el sujeto está establecido en una variable de cadena.
He buscado en Google y he visto que algunas personas dicen que MimeUtility.encodeText() podría resolver el problema, pero no he tenido éxito.
¿Cómo puedo resolver el problema? Este es el código que tengo hasta ahora.
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) {
...
}
Gracias
La única subclase enviada de 'Mensaje' es' MimeMessage'. Dudo que alguien haya implementado otra subclase. JavaMail sería menos desagradable si colapsaran 'javax.mail' y' javax.mail.internet' - esa capa adicional de abstracción solo significa que estás constantemente transfiriendo a la subclase. – dkarp
Esto no resolvió mi problema (enviando el símbolo £ en el asunto) –
@Mark: ¿Intentó 'msg.setSubject (" \ u00a3 "," UTF-8 ")' y no codificó el tema correctamente? ¿Qué había en el encabezado Asunto resultante? – dkarp