Как отображать изображения в html теле письма в клиенте "Боксер", используя CID

Я пытаюсь показать изображения в теле html письма с CID. Я прекрасно вижу его в почтовом приложении Outlook, gmail и IOS, но оно не работает в клиенте почтового приложения "Боксер".

Multipart mainContent = new MimeMultipart("mixed"); 
Multipart htmlContent = new MimeMultipart("related");
MimeMessage message = mailer.createMimeMessage();

String testHtml = <html><body><img src="cid:image0"></body></html>

BodyPart htmlBodyPart = new MimeBodyPart()
htmlBodyPart.setContent(testHtml, "text/html; charset=utf-8")
htmlContent.addBodyPart(htmlBodyPart, 0)
BodyPart htmlPart = new MimeBodyPart()

for (DataSource image : imgContent) {                   
    if (image != null) {
        MimeBodyPart inlinePart = new MimeBodyPart();
        inlinePart.setDataHandler(new DataHandler(image));
        inlinePart.setHeader("Content-Type", "image/gif; name=image.name) 
        inlinePart.setHeader("Content-Description", image.name+".gif")
        inlinePart.setHeader("Content-ID", "<"+image.name+">")
        inlinePart.setFileName(image.name+".gif")
        inlinePart.setDisposition(Part.INLINE);
        htmlContent.addBodyPart(inlinePart);
        }
}
if(htmlContent.count > 0 && mainContent.count > 0){         
    htmlPart.setContent(htmlContent)
    mainContent.addBodyPart(htmlPart, 0)
    message.setContent(mainContent) 
    mailer.send(message);
} 

Где изображение является base64, который преобразуется в источник данных.

Если я посмотрю на источник "показать оригинал" в GMAIL:

------=_Part_3_1416607382.1505308066878
Content-Type: multipart/related; boundary="---
=_Part_4_1916558632.1505308066879"

------=_Part_4_1916558632.1505308066879
Content-Transfer-Encoding: 7bit
Content-Type: text/html; charset=utf-8

<html><body><img src="cid:image0" ></body></html>
------=_Part_4_1916558632.1505308066879
Content-Type: image/gif; name=image0.gif
Content-Disposition: inline; filename=image0.gif
Content-Description: image0.gif
Content-ID: <image0>
Content-Transfer-Encoding: base64

------=_Part_4_1916558632.1505308066879--

Я пробовал разные форматы изображений без удачи. Первоначально изображение также не показывалось в Gmail, поэтому я добавил < > вокруг имени изображения для Content-ID, полагая, что это также может быть проблемой в Boxer, но это исправлено только для Gmail. Документация для Боксера скудна. Кто-нибудь может мне с этим помочь?

0 ответов

Другие вопросы по тегам