【问题标题】:Reading all Unread Messages/ recent messages in javaMail阅读javaMail中的所有未读消息/最近消息
【发布时间】:2014-07-04 14:58:51
【问题描述】:

提取收件箱时出现异常。我使用 mail.jar 和 javamail_1.4.1.jar。我只想得到未读消息的列表。但是我在“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

所有建议都会非常有用。

提前致谢

【问题讨论】:

  • 你能添加堆栈跟踪吗?你确定messages[] 不为空吗?
  • @Jens 根据这个link,FetchProfile 不能与 Folder.search 一起使用,所以我删除了它,只使用如下所述......看到的标志 = 新标志(Flags.Flag.SEEN); FlagTerm unseenFlagTerm = new FlagTerm(seen,false);消息消息[] = inbox.search(unseenFlagTerm);没有任何 FetchProfile 但message[] 仍然为空,不知道我哪里出错了。

标签: java jakarta-mail imap


【解决方案1】:

您可能想升级到more recent version of JavaMail,尽管我认为这与您的问题无关。

您确定您的收件箱中有看不见的消息吗?

你没有使用POP3,是吗?

请发布显示搜索结果的protocol trace

【讨论】:

  • 已解决!!!!显然我的邮件服务器已经有 2 个未读的 mssgs,这在我的邮件客户端中没有明确显示,我也无法找到额外的 2 个 mssgs 的位置。因此,我首先将收件箱中的所有消息标记为 READ msgs[i].setFlag(Flag.DELETED, true);,发布它就像一个魅力。显然它原来是一个邮件帐户问题。谢谢@Jens 和@Bill Shannon。
猜你喜欢
  • 2011-02-17
  • 1970-01-01
  • 2014-01-17
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-01
相关资源
最近更新 更多