Parsing 如何用JavaMail API解析Mbox文件?

Parsing 如何用JavaMail API解析Mbox文件?,parsing,jakarta-mail,java,mbox,Parsing,Jakarta Mail,Java,Mbox,我想使用JavaMail解析一个.mbox文件,就像这个文件一样 我想做的是: Session session = Session.getDefaultInstance(new Properties()); Store store = session.getStore("Here should go the .mbox file"); store.connect(); Folder folder = store.getFolder(server); folder.open(Folder.REA

我想使用JavaMail解析一个.mbox文件,就像这个文件一样

我想做的是:

Session session = Session.getDefaultInstance(new Properties());
Store store = session.getStore("Here should go the .mbox file");
store.connect();

Folder folder = store.getFolder(server);
folder.open(Folder.READ_ONLY);
...
这被证明是错误的。任何建议都会有帮助

先谢谢你

更新:工作示例


您可以使用,但需要自己构建。

您可以使用,但需要自己构建。

这可以通过Apache Mime4j完成:

    CharsetEncoder ENCODER = Charset.forName("UTF-8").newEncoder();
    final File mbox = new File(mboxPath);

    for (CharBufferWrapper message : MboxIterator.fromFile(mbox).charset(ENCODER.charset()).build()) {
        System.out.println(message);
    }
您需要:

<dependencies>
    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.6.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.james</groupId>
        <artifactId>apache-mime4j</artifactId>
        <version>0.8.1</version>
        <type>pom</type>
    </dependency>

</dependencies>

这可以通过Apache Mime4j完成:

    CharsetEncoder ENCODER = Charset.forName("UTF-8").newEncoder();
    final File mbox = new File(mboxPath);

    for (CharBufferWrapper message : MboxIterator.fromFile(mbox).charset(ENCODER.charset()).build()) {
        System.out.println(message);
    }
您需要:

<dependencies>
    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.6.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.james</groupId>
        <artifactId>apache-mime4j</artifactId>
        <version>0.8.1</version>
        <type>pom</type>
    </dependency>

</dependencies>


谢谢你,比尔,它工作得很好。虽然在我构建它之前花费了相当多的时间和错误,因为我不熟悉maven。事实上,在使用eclipse插件为maven构建时仍然存在错误,但当我在项目中使用mbox.jar文件时,一切似乎都很好。@Xipo您能使用mbox jar吗?你能给我一个示例代码实现吗?我看不到如何使用java mail mbox jar读取我的mbox文件。您尝试了什么?你自己成功地构建了mbox提供程序吗?@VikramGulia我在问题中添加了一个代码片段,展示了如何获取messages@BillShannon是的,我成功地为MBOX构建了jar。谢谢,我会查出来的。谢谢你@Bill,效果很好。虽然在我构建它之前花费了相当多的时间和错误,因为我不熟悉maven。事实上,在使用eclipse插件为maven构建时仍然存在错误,但当我在项目中使用mbox.jar文件时,一切似乎都很好。@Xipo您能使用mbox jar吗?你能给我一个示例代码实现吗?我看不到如何使用java mail mbox jar读取我的mbox文件。您尝试了什么?你自己成功地构建了mbox提供程序吗?@VikramGulia我在问题中添加了一个代码片段,展示了如何获取messages@BillShannon是的,我成功地为MBOX构建了jar。谢谢,我会查出来的。我无法让你的代码工作。例如,我无法在任何javax邮件API中解析MessageReader。从代码中删除implements MessageReader并使用没有它的代码进行编译,我得到了一个没有这样的mbox提供程序的异常。@Morkus正如Bill所建议的,您需要构建JavaMail mbox存储并将其导入您的项目OK。例如,我正在寻找可以从MacMail读取常规MBOX文件的东西。谢谢。我无法让你的代码工作。例如,我无法在任何javax邮件API中解析MessageReader。从代码中删除implements MessageReader并使用没有它的代码进行编译,我得到了一个没有这样的mbox提供程序的异常。@Morkus正如Bill所建议的,您需要构建JavaMail mbox存储并将其导入您的项目OK。例如,我正在寻找可以从MacMail读取常规MBOX文件的东西。谢谢,很有趣。我尝试了这个,但在每一个指向mbox文件的情况下,我都得到了一个操作不允许的异常。注意:在编译此代码之前,您必须单独下载MboxIterator和其他几个类。我尝试了这个,但在每一个指向mbox文件的情况下,我都得到了一个操作不允许的异常。注意:在编译此代码之前,您必须单独下载MboxIterator和其他几个类。