【问题标题】:How do I import blob images from oracle database and embed the image at any location of a javamail?如何从 oracle 数据库导入 blob 图像并将图像嵌入到 javamail 的任何位置?
【发布时间】:2016-02-03 11:20:16
【问题描述】:

我正在尝试从数据库中获取 Blob 图像并将它们作为内联图像添加到邮件中。但是纯文本邮件没有任何图像。 我该怎么做?

EmailContent content  

包含 BLOB 图像和文本内容。

函数sn-p如下:

public void sendEmail(EmailContent content) throws Exception {

    Multipart multiPart = new MimeMultipart();

    if (content.getText() != null) {
        MimeBodyPart bodyPart = new MimeBodyPart();

        multiPart.addBodyPart(bodyPart);

        if (content.getImageContent() != null) {
            MimeBodyPart imagePart = new MimeBodyPart();
            Blob attachmentList = content.getImageContent();
            imagePart.setDisposition(MimeBodyPart.INLINE);
            imagePart.attachFile((File) attachmentList) ;
        }
    }
}

【问题讨论】:

  • 你怎么可能将Blob 转换为File?假设它是一个java.sql.Blob 使用MimeBodyPart 构造函数,它采用InputStream 而不是尝试附加文件。 new MimeBodyPart(attementList.getBinaryStream());当然删除attachFile

标签: java oracle blob jakarta-mail attachment


【解决方案1】:

您需要编写 html 代码来获取电子邮件部分的图像.. 我认为它会为你工作..

StringBuilder mailString = new StringBuilder();

applicationURL = https://localhost:8080/xyz + "/images/primary/mailTemplate.jpg";
mailString.append("<html>\n");
mailString.append("     <div style=\"text-align: center;\">\n");
mailString.append("         <img src=");
mailString.append("'");
mailString.append(applicationURL);
mailString.append("'");
mailString.append("align='left'>\n");
mailString.append("     </div>\n");
mailString.append(" </body>\n");
mailString.append("</html><br/><br/><br/><br/><br/><br/><br/>");

【讨论】:

  • 我正在尝试从数据库中获取。在上述情况下,您正在设置变量的静态路径,然后添加到邮件正文。
  • JavaMail FAQ entry。如果您真的想在消息中包含图像,则需要创建多部分/相关消息。
猜你喜欢
  • 1970-01-01
  • 2020-02-25
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 2017-03-23
  • 1970-01-01
  • 2012-12-02
  • 2013-06-26
相关资源
最近更新 更多