上下文
我正在开发 .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,您可以安排将其解析为消息的各个部分。
关于java - .eml 预览,其中包含 html 正文中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57722712/