如何使用mstor?

时间:2011-11-25 03:58:29

标签: java javamail

我按照说明打开一个邮件商店,使用下面的代码,它很难,花了几秒钟解码我的eml,但后来我没有文件夹也没有消息。没有例外的想法。怎么办?

        Store store = session.getStore(new URLName("mstor:test-data/01-one-time-test/215.eml"));
        store.connect();
        // read messages from Inbox..
        Folder inbox = store.getDefaultFolder();                        
        inbox.open(Folder.READ_ONLY);
        Folder [] folders = inbox.list();
        System.out.println("folder count: " + folders.length);
        Message[] messages = inbox.getMessages();
        System.out.println("message count: " + messages.length);

=============================================== ====== 我解决了这个问题:

您需要向mstor提供包含mbox文件的文件夹。然后mstor工作得很漂亮。关于它的好处是有一个maven下载。

侨!

1 个答案:

答案 0 :(得分:1)

        Properties properties = new Properties();
        this.properties.setProperty("mail.store.protocol", "mstor");
        this.properties.setProperty("mstor.mbox.metadataStrategy", "none");
        this.properties.setProperty("mstor.mbox.cacheBuffers", "disabled");
        this.properties.setProperty("mstor.mbox.bufferStrategy", "mapped");
        this.properties.setProperty("mstor.metadata", "disabled");
        this.properties.setProperty("mstor.mozillaCompatibility", "enbled");
        this.session = Session.getInstance(this.properties);

    try {

        final Store store = session.getStore(new URLName("mstor:" + path));
        try {

            store.connect();
            this.inbox = (MStorFolder) store.getFolder(path);//getDefaultFolder();//.getFolder(path);
            this.inbox.open(Folder.READ_ONLY);
            count =inbox.getMessageCount();
            } catch (MessagingException ex) {
            ex.printStackTrace();
        }
    } catch (NoSuchProviderException e) {
        e.printStackTrace();

      }