Мне нужно записать содержимое электронной почты из hbase в формат файла .html. У меня есть все данные электронной почты в объекте Java. Я использую java.email lib для этого. Однако возникает проблема с записью составного изображения MimeMessage в файл .html.
У меня есть изображение, встроенное в HTML следующим образом. Я попробовал другой подход без источника данных, это прокомментированные строки в коде ниже.
MimeMessage mimeMessage = outlookMsg.toMimeMessage();
mimeMessage.setFrom("abc@gmail.com");
mimeMessage.setRecipients(RecipientType.TO, "xyz@gmail.com");
mimeMessage.setSubject("story completion");
MimeMultipart multipart = new MimeMultipart("related");
// first part (the html)
MimeBodyPart messageBodyPart = new MimeBodyPart();
String htmlText = "<H1>Hello</H1><img src=\"cid:image\"/>";
messageBodyPart.setContent(htmlText, "text/html");
// add it
multipart.addBodyPart(messageBodyPart);
// second part (the image)
messageBodyPart = new MimeBodyPart();
DataSource fds = new FileDataSource(new File("D:\\JAVA\\Practice_Workspace\\pst\\krishna_radha.jpg"));
messageBodyPart.setDataHandler(new DataHandler(fds));
//messageBodyPart.setHeader("Content-ID", "<image>");
messageBodyPart.setContentID("<image>");
messageBodyPart.setDisposition(MimeBodyPart.INLINE);
//messageBodyPart.attachFile("D:\\JAVA\\Practice_Workspace\\pst\\krishna_radha.jpg");
mimeMessage.setContent(multipart);
File file = new File("D:\\JAVA\\Practice_Workspace\\pst\\htmlemail.html");
//OutputStream os = new FileOutputStream(file);
FileOutputStream os = new FileOutputStream(file);
mimeMessage.writeTo(os);
os.flush();
os.close();
Я получаю вывод, как показано ниже. Изображение не отображается.
Пожалуйста, помогите. Заранее спасибо.
введите описание изображения здесь