addMessageCountListener не работает в javamail - PullRequest
0 голосов
/ 15 декабря 2011

Я пытаюсь использовать addMessageCountListener (для протокола POP3) в небольшом проекте, но он не работает.

Это код, в который я добавил слушателя:

protected void openFolder() {
    try {

        this.inbox = this.store.getFolder("INBOX");

        if (inbox == null) {

            throw new Exception("No POP3 INBOX");

        }

        this.inbox.open(Folder.READ_WRITE);

        this.inbox.addMessageCountListener(new MessageCountAdapter() {

            public void messagesAdded(MessageCountEvent ev) {

                System.out.println("Event");

                Message [] msgs = ev.getMessages();

                for (Message msg : msgs) {

                    System.out.println("msg");

                    System.out.println(AbstractReceiverClient.getTextFromMsg("email", "subject", msg));
                }
            }

            public void messagesRemoved(MessageCountEvent ev) {}
       });
    }
    catch(Exception e) {
        System.out.println(e.getMessage());
    }
}

Здесь я прошу сервер подсчитать количество сообщений за 5 секунд.

public void worker() {
    try {
        while(true){
            java.lang.Thread.sleep(5000);
            System.out.println(this.inbox.getMessageCount());
        }
    }
    catch(Exception e){}
}

В результате я вижу только количество сообщений (например, 18), но я отправил сообщение после запуска программы.

PS. Спасибо за помощь

1 Ответ

0 голосов
/ 15 декабря 2011

Это потому, что протокол POP3 не позволяет новым сообщениям появляться в вашем почтовом ящике, пока он открыт.

...