Вложения + HTML, сгенерированный с помощью обыкновенной электронной почты, не отображается в некоторых почтовых клиентах - PullRequest
1 голос
/ 30 ноября 2009

Я уже некоторое время использую класс org.apache.commons.mail.HtmlEmail из apache commons-mail. В конце концов, некоторые пользователи жалуются на то, что электронное письмо не отображается на их почтовом клиенте (проблема обнаружена в Outlook 2007 и Lotus Notes).

Один пользователь даже проанализировал проблему и отправил мне следующую ссылку:

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

Я читал, что другие: из-за этой проблемы переключились на raw javax.mail API.

Вот часть кода, которая прикрепляет файлы:

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
}

Кто-нибудь испытывал это раньше?

Заранее большое спасибо.

Jonathas

1 Ответ

2 голосов
/ 30 ноября 2009

Похоже, что возникла проблема с commons-email version 1.1. Обновление до 1.2, похоже, решает проблему.

...