Les pièces jointes + HTML générés avec commons-email n'apparaissent pas dans certains clients de messagerie.
-
10-07-2019 - |
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
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.