Los archivos adjuntos + HTML generados con commons-email no se muestran en algunos clientes de correo electrónico

StackOverflow https://stackoverflow.com/questions/1821464

Pregunta

He estado usando la clase org.apache.commons.mail.HtmlEmail, desde apache commons-mail, durante algún tiempo. Eventualmente, algunos usuarios se quejan de que el correo electrónico se muestra sin adjuntos en su cliente de correo electrónico (problema informado en Outlook 2007 y Lotus Notes).

Un usuario incluso analizó el problema y me envió el siguiente enlace:

http://support.microsoft.com/kb/961940

He leído que otros: han cambiado a la API javax.mail sin procesar debido a este problema.

Aquí está la parte del código que adjunta los archivos:

private void dummy(List<Map<String, byte[]>> attachments, String htmlText) throws EmailException {
    HtmlEmail memail;

    memail = new HtmlEmail();
    memail.setHtmlMsg(htmlText);
    memail.setTextMsg("Your mail client doesn't recognize HTML e-mails.");

    Iterator<Map<String, byte[]>> iter = attachments.iterator();
    while (iter.hasNext()) {
        Map<java.lang.String, byte[]> map = iter.next();

        Set<Entry<String, byte[]>> entries = map.entrySet();
        for (Entry<String, byte[]> entry : entries) {
            try {
                ByteArrayDataSource bads = new ByteArrayDataSource(
                        entry.getValue(), null);
                memail.embed(bads, entry.getKey());
//              memail.attach(bads, entry.getKey(), ""); // if I use this, the html message 
                        // gets displaced
            } catch (IOException e) {
                throw new EmailException(e);
            }
        }
    }
    // ... continues
}

¿Alguien ha experimentado eso antes?

Muchas gracias de antemano.

Jonathas

¿Fue útil?

Solución

Parece que hubo un problema con commons-email versión 1.1. Actualizar a 1.2 parece resolver el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top