首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用JavaMail接口解析Mbox文件?

如何使用JavaMail接口解析Mbox文件?
EN

Stack Overflow用户
提问于 2013-11-06 23:50:33
回答 2查看 5.1K关注 0票数 2

我想使用JavaMail来解析一个.mbox文件,就像这个http://mail-archives.apache.org/mod_mbox/lucene-java-user/201210.mbox一样。

我想要做的是:

代码语言:javascript
复制
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);
...

事实证明这是错误的。任何建议都会很有帮助。

提前谢谢你。

更新:工作示例

代码语言:javascript
复制
public class MBoxFileReader implements MessageReader {
    private final Path path;  // Path to .mbox file

    public MBoxFileReader(Path path) {
        this.path = path;
    }

    @Override
    public Message[] readMessages() {
        Message[] messages = new Message[0];
        URLName server = new URLName("mbox:" + path.toString());
        Properties props = new Properties();
        props.setProperty("mail.mime.address.strict", "false");
        Session session = Session.getDefaultInstance(props);
        try {
            Folder folder = session.getFolder(server);
            folder.open(Folder.READ_ONLY);
            messages = folder.getMessages();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return messages;
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-07 03:26:07

您可以使用JavaMail mbox Store,但您需要自己构建它。

票数 3
EN

Stack Overflow用户

发布于 2018-03-20 21:42:33

这可以使用Apache Mime4j来完成:

代码语言:javascript
复制
    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);
    }

您需要:

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19816556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档