如何在java中解析原始mime内容?
Posted
技术标签:
【中文标题】如何在java中解析原始mime内容?【英文标题】:How to parse raw mime content in java? 【发布时间】:2013-11-01 17:39:07 【问题描述】:我有包含 html 内容、内嵌图像和附件的原始 mime 消息。
我想解析和显示 html 页面中的内容,就像邮件客户端显示的一样。
是否有任何 java 库或方法可用于解析原始 mime 内容?
【问题讨论】:
在哪里显示?摆动组件? html页面? @MaVRoSCy 我想在 html 页面中显示内容。 对象的类型是什么?是 MimeMessage 还是包含消息的 String? @BenoitWickramarachi 字符串 mime 内容(内容与在 gmail 中显示原始消息相同) 好的,你能给我们看一些代码吗?您如何检索消息? 【参考方案1】:你需要读取文件,然后创建一个 MimeMessage:
// read the file
StringBuffer fileData = new StringBuffer(1000);
BufferedReader reader = new BufferedReader(new FileReader(new File(/*PATH*/)));
char[] buf = new char[1024];
int numRead = 0;
while ((numRead = reader.read(buf)) != -1)
fileData.append(buf, 0, numRead);
reader.close();
// Create a MimeMessage
Properties props = System.getProperties();
Session session = Session.getInstance(props, null);
MimeMessage message = new MimeMessage(session, new ByteArrayInputStream(fileData.toString().getBytes()));
现在您有了 mime 消息,您可以使用以下方法访问其内容:
message.getContent();
内容类型将取决于 mime 类型(可以是字符串、Multipart 对象...)
这是 MimeMessage 的 JavaDoc。
【讨论】:
在调用 MimeMessage 构造函数之前不需要复制数据;只需直接将文件提供给它,例如,使用SharedFileInputStream。以上是关于如何在java中解析原始mime内容?的主要内容,如果未能解决你的问题,请参考以下文章