java - .eml 预览与 html 正文中的图像
问题描述
语境
我正在开发 .eml 文件的预览器,但在显示 html 正文中的图像时遇到了一些问题。
实际解决方案
我能够得到如下的html正文:
MimeMessage mimeMessage = MimeMessageUtils.createMimeMessage(null, file);
MimeMessageParser parser = new MimeMessageParser(mimeMessage);
body = parser.parse().getHtmlContent();
但这是结果:
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,您可以安排这些 URL 来解析消息的各个部分。
推荐阅读
- c - 如何用数字解码 LZ78 压缩字符串的结果?
- python - 用占位符替换 XML 实体 (& < > )
- javascript - 如何在 React.js 中使用 useEffect 和 props 传递值?
- swift - Swift:委托方法不会触发
- java - Java GUI 中的删除按钮激活
- javascript - JavaScript / AngularJS:仅当我单击两次按钮时才显示错误消息
- azure - 为什么 PowerShell 无法加载文件或程序集来运行 Azure PowerShell 模块?
- php - Laravel Ajax 控制器设置图像的 URL
- reactjs - 在 Jest/Enzyme 测试期间无法运行 React Hook setInterval Timer
- python - 导入具有相对路径的模块 - 最好的处理方式?