2009-11-30 3 views
1

J'ai utilisé la classe org.apache.commons.mail.HtmlEmail depuis apache commons-mail depuis un certain temps. Finalement, certains utilisateurs se plaignent que l'email montre sans attachemnts sur leur client de messagerie (problème signalé dans Outlook 2007 et Lotus Notes).Pièces jointes + Html généré avec des messages électroniques communs ne s'affiche pas dans certains clients de messagerie électronique

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: sont passés à l'API de javax.mail brut en raison de ce problème.

est ici la partie du code qui fixe 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 
} 

Avez quelqu'un connu auparavant?

Merci beaucoup à l'avance.

Jonathas

Répondre

2

Il semble qu'il y avait un problème avec la version 1.1 commons-email. La mise à niveau vers 1.2 semble résoudre le problème.

Questions connexes