Как отображать изображения в 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. Документация для Боксера скудна. Кто-нибудь может мне с этим помочь?