Les pièces jointes + HTML générés avec commons-email n'apparaissent pas dans certains clients de messagerie.

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

Question

J'utilise la classe org.apache.commons.mail.HtmlEmail, issue d'apache commons-mail, depuis un certain temps. En fin de compte, certains utilisateurs se sont plaints du fait que le courrier électronique était affiché sans pièce jointe sur leur client de messagerie (problème signalé dans Outlook 2007 et Lotus Notes).

Un utilisateur a même analysé le problème et m'a envoyé le lien suivant:

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

J'ai lu que d'autres utilisateurs sont passés à l'API brute javax.mail en raison de ce problème.

Voici la partie du code qui attache les fichiers:

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
}

Quelqu'un en at-il déjà fait l'expérience?

Merci beaucoup d'avance.

Jonathas

Était-ce utile?

La solution

Il semble qu'il y ait eu un problème avec commons-email version 1.1. Le passage à la version 1.2 semble résoudre le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top