проблема с записью составного mimeMessage (встроенного изображения) в файл .html - PullRequest
0 голосов
/ 28 апреля 2018

Мне нужно записать содержимое электронной почты из 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();

Я получаю вывод, как показано ниже. Изображение не отображается.

Пожалуйста, помогите. Заранее спасибо.

введите описание изображения здесь

...