Чтение всех непрочитанных сообщений / последних сообщений в javaMail

1

Я получаю исключение, в то время как ящик входящих. Я использую mail.jar и javamail_1.4.1.jar. Я хотел получить только список непрочитанных сообщений. Однако я получаю исключение Null-указателя в "inbox.fetch(messages, fp)"; Фрагмент кода >>>>

    inbox = store.getFolder("INBOX");
    inbox.open(Folder.READ_WRITE);
    int unreadMessageCount = inbox.getUnreadMessageCount();        
    Message messages[]                                                                                   
    = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN),false)); 
    FetchProfile fp = new FetchProfile();    
    fp.add(FetchProfile.Item.ENVELOPE);
    //fp.add(FetchProfile.Item.FLAGS); 
    fp.add(FetchProfile.Item.CONTENT_INFO); 
    //fp.add("X-     Mailer");
    inbox.fetch(messages,fp)>>>> Causes NullPointerException

Все предложения были бы замечательными и полезными.

заранее спасибо

  • 0
    Можете ли вы добавить трассировку стека, пожалуйста? Вы уверены, что messages[] не является нулем?
  • 0
    @Jens согласно этой ссылке , нельзя использовать FetchProfile вместе с Folder.search, поэтому я удалил его и просто использовал, как указано ниже ...... Flags seen = new Flags (Flags.Flag.SEEN); FlagTerm unseenFlagTerm = новый FlagTerm (видимый, ложный); Сообщения сообщений [] = inbox.search (unseenFlagTerm); Без какого-либо FetchProfile Но message[] все равно приходит как ноль, нет идеи, где я иду не так.
Теги:
imap
javamail

1 ответ

0

Возможно, вам захочется перейти на более новую версию JavaMail, хотя я не думаю, что она имеет какое-либо отношение к вашей проблеме.

Вы уверены, что в вашем INBOX есть невидимые сообщения?

Вы не используете POP3, не так ли?

Пожалуйста, разместите трассировку протокола, показывающую результаты поиска.

  • 0
    Решено !!!! По-видимому, мой почтовый сервер уже имел 2 непрочитанных mssgs, которые не были явно показаны в моем почтовом клиенте, также я не смог найти, где были лишние 2 mssgs. Поэтому я сначала пометил все сообщения в msgs[i].setFlag(Flag.DELETED, true); Входящие» как READ msgs[i].setFlag(Flag.DELETED, true); , пост которого он работал как шарм. По-видимому, это оказалось проблемой почтовой учетной записи. Спасибо @Дженс и @Билл Шеннон.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню