java - 电子邮件中 ​​html 正文中的嵌入图像(内联)显示为附件

标签 java jakarta-mail

我已成功添加图像( Logo )作为 html 电子邮件中的内联图像。 不过,它还显示下载附件等图像的链接。在雅虎邮件中,附件中提供了所有可用的图像

我的东西如下,

<html>
    <body>
        <img src="cid:mylogo.png" />
        <table>
            .
            .
            .
        </table>
    </body>
</html>

 Multipart multipart = new MimeMultipart();
 MimeBodyPart imagePart = new MimeBodyPart();
 DataSource ds = new FileDataSource("D:/temp/mylogo.png");
 imagePart.setDataHandler(new DataHandler(ds));
 imagePart.setHeader("Content-ID", "<mylogo.png>");
 imagePart.setDisposition(Part.INLINE);
 multipart.addBodyPart(imagePart);

当我在 yahoo 和 gmail 等电子邮件客户端中打开生成的邮件时,图像显示为我所期望的,但它也显示为附件。我如何禁止下载此类图像?

最佳答案

执行此操作时,图像将作为附件发送,因此它会显示为附件。您无法阻止这种情况,因为您对邮件客户端没有任何控制权。

相反,请将您的图像上传到网络上的某个位置并更改您的 src到它的 URL。 (例如:<img src="http://example.com/mylogo.png" />)。

关于java - 电子邮件中 ​​html 正文中的嵌入图像(内联)显示为附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29364370/

相关文章:

java - 无法使用 .getAllHeaders() 方法获取所有电子邮件 header

Javamail - 为什么我无法让它工作?

java - JdbcTemplate 在插入时返回 UUID "A result was returned when none was expected."

ssl - Javamail 不适用于 gmail SMTP

JavaMailSender 失败 : javax. mail.internet.ParseException:缺少 '"'

java - SOAP:将方法从 AXIS 1.4 迁移到 CXF 以添加新 header

java - 使用 JavaMail 的表

java - 枚举 : get the keys list

java - 将单页应用程序与 Ping Federate 集成

java - AEM(CQ) 5.6 无法在 Java 1.8.0_111 中运行?