【问题标题】:is it possible to find if message is unread using java mail API?是否可以使用 java 邮件 API 查找消息是否未读?
【发布时间】:2011-08-01 20:11:00
【问题描述】:

我使用java邮件阅读Gmail如下-

Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imaps");
store.connect("imap.gmail.com", "mail", "password");

Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);

Message[] messages = folder.getMessages();

现在我想知道消息是否未读,但找不到任何 API。 我想做一些类似的事情 -

 for(Message message:messages) {

    if(message.isUnread) {
    // Do Something here
    }
 }

虽然没有这样的 API - isUnred。

【问题讨论】:

  • 如果我能收集所有未读消息,而不是尝试检查每条消息是否未读,那就更好了......

标签: java


【解决方案1】:

你试过 Message.isSet(Flags.Flag.SEEN)

http://javamail.kenai.com/nonav/javadocs/javax/mail/Flags.Flag.html#SEEN

已看到此消息。当这个消息的内容以某种形式返回给客户端时,这个标志由实现隐式设置

我使用 JavaMail 已经有一段时间了,但我认为它可以满足您的需求

【讨论】:

  • 我如何查询消息以仅获取未读的消息?
  • 此标志适用于 Gmail 和 yahoo 电子邮件,但不适用于 Hotmail 电子邮件。有人遇到这个问题或解决这个问题吗?
  • 我找到了为什么这个标志不适用于 Hotmail 的原因,因为 Hotmail 不能使用“imap”,所以我使用“pop3”来阅读电子邮件。 POP 不支持此参数。
  • 只是一个更新,似乎超链接不再起作用了。不过,这仍然是一个很好的答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-24
  • 2017-04-21
  • 2018-09-12
相关资源
最近更新 更多