【问题标题】:How to parse raw mime content in java?如何在java中解析原始mime内容?
【发布时间】:2013-11-01 17:39:07
【问题描述】:

我有包含 html 内容、内嵌图像和附件的原始 mime 消息。

我想解析和显示 html 页面中的内容,就像邮件客户端显示的一样。

是否有任何 java 库或方法可用于解析原始 mime 内容?

【问题讨论】:

  • 在哪里显示?摆动组件? html页面?
  • @MaVRoSCy 我想在 html 页面中显示内容。
  • 对象的类型是什么?是 MimeMessage 还是包含消息的 String?
  • @BenoitWickramarachi 字符串 mime 内容(内容与在 gmail 中显示原始消息相同)
  • 好的,你能给我们看一些代码吗?您如何检索消息?

标签: java jakarta-mail mime


【解决方案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
猜你喜欢
  • 2015-01-01
  • 1970-01-01
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
  • 2013-06-27
相关资源
最近更新 更多