Как использовать Мстор? - PullRequest
0 голосов
/ 25 ноября 2011

Я открываю почтовое хранилище, следуя инструкциям, используя приведенный ниже код, и оно усердно работает, тратя несколько секунд на декодирование моего 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. Тогда Мстор работает красиво. Хорошая часть в том, что есть Maven-загрузка.

Ciao!

1 Ответ

1 голос
/ 15 июля 2012
        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();

      }
...