texto mensaje los llegan insertar formato está electrónico electronico cuerpo correos correo convertir como cambiar blanco java email smtp mime-types apache-commons

mensaje - ¿Por qué este correo de Java llega como texto sin formato en lugar de html en el destinatario?



los correos me llegan sin formato (2)

Tengo este código para enviar un correo electrónico:

public static void sendHtmlTextWithPlainTextAlternative(final String to, final String from, final String subject, final String plainText, final String htmlText) throws MessagingException { final HtmlEmail email = new HtmlEmail(); email.setHostName(SMTP); try { email.addTo(getStringAddresses(to)); email.setFrom(from); email.setSubject(subject); email.setHtmlMsg("<html><head></head><body><p>Hello World!</p></body></html>"); email.setTextMsg("Hello World!"); email.send(); } catch (final EmailException e) { e.printStackTrace(); } } private static String[] getStringAddresses(final String to) { return to.split(" |,|;|//r?//n|//r"); }

Pero todo lo que obtengo en mi cliente de correo electrónico (Outlook 2010) es un mensaje de texto sin formato donde puedo ver el marcado HTML y el texto plano alternativo o un mensaje de texto enriquecido que está en blanco (Outlook 2002).

Aquí hay un extracto

------=_Part_0_756354128.1364993577885 Content-Type: multipart/alternative; boundary="----=_Part_1_48519531.1364993577890" ------=_Part_1_48519531.1364993577890 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello World! ------=_Part_1_48519531.1364993577890 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit <html><head></head><body><p>Hello World!</p></body></html> ------=_Part_1_48519531.1364993577890-- ------=_Part_0_756354128.1364993577885--

Según un administrador de Exchange Server, el mensaje debería contener algo como esto al principio

0 2.1.5 Recipient OK DATA 354 Start mail input; end with <CRLF>.<CRLF> Content-Type: multipart/mixed; boundary="----=_Part_1_933059347.1364987366297"

Pero llega así (extracto):

250 2.1.5 Recipient OK DATA 354 Start mail input; end with <CRLF>.<CRLF> This is the content preamble. ------=_Part_1_933059347.1364987366297 Content-Type: multipart/alternative; boundary="----=_Part_0_1905186593.1364987366295"

El correo electrónico llega con un asunto vacío y una lista de destinatarios vacía. ¿Qué podría causar este extraño comportamiento?


Veo que estás usando Apache commons?

Intente quitar la etiqueta de cabeza y cuerpo

Entonces tendras

email.setHtmlMsg("<html><p>Hello World!</p></html>");

Otra cosa que no debería hacer la diferencia, pero puede intentarlo es establecer la valur correcta para email.setHostName ("mail.myserver.com");

Guía del usuario de Ref commons eml

Y envíe el correo a una cuenta de Gmail, ¿tal vez el servidor tiene una configuración para permitir solo el texto y la eliminación de html? ¿Puedes enviar el mismo id. De correo html desde gmail (formato enriquecido)?


Después de descubrir qué buscar, la solución fue bastante simple y debo agradecer a Cedric Champeau. Fue un conflicto con geronimo-javamail que fue arrastrado a través de otra dependencia maven. Todo lo que tenía que hacer era excluir esa dependencia: Apache CXF + Maven + Javamail + Log4J (actualización)