将multipart(嵌入式图像)mimeMessage写入.html文件的问题

时间:2018-04-28 18:30:36

标签: java javamail

我需要将电子邮件内容从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();

我的输出如下。图像未显示。

请帮忙。提前谢谢。

enter image description here

0 个答案:

没有答案