java - .eml 预览,其中包含 html 正文中的图像

标签 java email jakarta-mail eml

上下文

我正在开发 .eml 文件的预览器,但在显示 html 正文中的图像时遇到一些问题。

实际解决方案

我能够获取 html 正文,如下所示:

MimeMessage mimeMessage = MimeMessageUtils.createMimeMessage(null, file);
MimeMessageParser parser = new MimeMessageParser(mimeMessage);
body = parser.parse().getHtmlContent(); 

但这就是结果:

enter image description here

html:

...
<font size="2" face="sans-serif">Thanks</font><br>
<font size="2" face="sans-serif">Enry</font><br>
<font size="2" face="sans-serif"><br>
</font><br>
<img src="cid:0__=4EBB0EF7DFBA71E78f9e8a93df93869091@local" width="253" height="120">

这是 .eml:

...
<font size="2" face="sans-serif">Thanks</font><br>
<font size="2" face="sans-serif">Enry</font><br>
<font size="2" face="sans-serif"><br>
</font><br>
<img src="cid:0__=4EBB0EF7DFBA71E78f9e8a93df93869091@local" width="253" height="120"></body></html>
--0__=4EBB0EF7DFBA71E78f9e8a93df938690918c4EBB0EF7DFBA71E7
Content-type: image/gif; 
    name="02430556.gif"
Content-Disposition: inline; filename="02430556.gif"
Content-ID: <0__=4EBB0EF7DFBA71E78f9e8a93df93869091@local>
Content-transfer-encoding: base64

R0lGODdh/QB4AOf/AAABAAEEAAMGAQcJBQoMCAwPCw8RDhIUERQVExUXFRcZFxobGRwdGx8hHiIk
IScoJiosKUclJCwtKygwLC0vLDAxLykzNCszLzEzMS02NDQ1Mzk1NFwsMDY3NTs2NVUvMWsqLEA2
Nzc5NkU1Nzg5N18vMUg2NDk7OHcqK002NU84Nzw+O1o2NFU3OXMvMogrLj5APVw4PGI3OGc2OYUv
LWk3NUFCQIIwNJEsMpMtLlI/PXA3OHU2OUdDQXs1Nnc3NZstMkRGQ1lBQE5ERF5AQaQtMG48PUZI
RWs/QK0tNIc4OJM1NmFDRE1JSElLSI84OqIzN5s1OWpEREtNSrgvNVxJR5c5OVdMTKw1Nqs1O05P
TbQ0NKY4OlRPTrwzOFBRT7U2O8QzNr82OqQ+QW1NT1NVUsY1PZ9AQ8g2OH5KTdA0Ns80O3NOUWZS
UIpIS9kzNF9UVZtERYZKSuExOFZYVdk0OnhPTtM3ONs1O+MzOd03Pd44N1tcWmVaW985PmBcW11e
XI5SUolUVl9hXnVcW3tbXINZWmNlYl1oaWplZHVjZnFlZmdoZoNjZHlmZmpraGxua4JoZ25wbrFe...

问题

有人知道我该怎么做才能正确显示图像吗?

最佳答案

html 内容将使用“cid:”和 Content-ID(而不是“http:”)引用图像。您需要一种方法将这些 URI 解析为消息的相应部分,或者您需要重写 html 内容以使用您自己选择的新 URL,您可以安排将其解析为消息的各个部分。

关于java - .eml 预览,其中包含 html 正文中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57722712/

相关文章:

java - Appium v​​s Espresso 用于自动化测试框架

java - SQL错误 参数太少

facebook - 如何通过 Facebook 登录获取电子邮件地址?

java - 我可以将 JavaMail API 用于商业项目吗?

java - 递归调用main

iOS 邮件 - 附件按钮呈现错误 - 任何解决方案?

email - Magento 使用 CSV 发送帖子

JavaMail 附件第一行之前的内容配置

JavaMail API、Gmail-Auth 和 setFrom

java - 升级后 SonarQube 仪表板上缺少报告