views:

212

answers:

1

Hi,

I've been using the org.apache.commons.mail.HtmlEmail class, from apache commons-mail, for some time. Eventually, some users complain that the email shows with no attachemnts on their e-mail client (problem reported in Outlook 2007 and Lotus Notes).

One user have even analysed the problem and sent me the following link:

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

I have read that others: have switched to raw javax.mail API due to this problem.

Here's the part of the code which attaches the files:

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
}

Have anyone experienced that before?

Thanks a lot in advance.

Jonathas

+1  A: 

It seems that there was a problem with commons-email version 1.1. Upgrading to 1.2 seems to solve the problem.

Jonathas Carrijo