在javaMail中读取所有未读邮件/最近的邮件

在javaMail中读取所有未读邮件/最近的邮件,java,jakarta-mail,imap,Java,Jakarta Mail,Imap,提取收件箱时出现异常。我使用mail.jar和javamail_1.4.1.jar。我只想得到未读邮件的列表。但是,我在inbox.fetchmessages,fp中收到一个空指针异常;代码片段>>> inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_WRITE); int unreadMessageCount = inbox.getUnreadMessageCount(); Mess

提取收件箱时出现异常。我使用mail.jar和javamail_1.4.1.jar。我只想得到未读邮件的列表。但是,我在inbox.fetchmessages,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
所有的建议都会非常有用


提前感谢

您可能需要升级到,尽管我认为这与您的问题无关

您确定收件箱中有未看到的邮件吗

你没有用,是吗


请发布显示搜索结果的日志。

您可以添加stacktrace吗?你确定messages[]不是空的吗?@Jens根据这个,FetchProfile不能与Folder.search一起使用,所以我删除了它,只使用下面提到的。。。。。。已看到的标志=新标志Flags.Flag.seen;FlagTerm unseenFlagTerm=新FlagTerm已看到,false;messages[]=inbox.searchunseenFlagTerm;没有任何FetchProfile,但消息[]仍然为空,不知道我哪里出错。已解决!!!!显然,我的邮件服务器已经有2个未读的MSSG,这在我的邮件客户端中没有明确显示,而且我也无法找到额外的2个MSSG所在的位置。因此,我首先将收件箱中的所有邮件标记为READ msgs[I].setFlagFlag.DELETED,true;,这篇文章很有魅力。显然,这是一个邮件帐户问题。谢谢Jens和Bill Shannon。