2012-09-09 27 views
1

我通过POP3连接到我的邮箱,并获得未读邮件数。箱子里有10封邮件,只有一封在未读的状态。但Folder.getUnreadMessagesCount()返回10而不是1. 这是邮件提供商设置中的问题还是我做错了什么?Javamail的getUnreadMessagesCount()返回全部邮件而不是未读邮件

这是我做的:

Session session = Session.getDefaultInstance(props, new EMailAuthenticator(getLogin(), getPassword())); 
Store store = session.getStore(); 
store.connect(); 

Folder inbox = store.getFolder("INBOX"); 
inbox.open(Folder.READ_ONLY); 
inbox.getUnreadMessageCount(); 

回答

3

POP3有没有方法来跟踪已读或未读的消息(见RFC1939),这样的JavaMail会将所有消息为未读。如果你想能够跟踪阅读和未阅读的电子邮件,那么你需要使用IMAP。

+1

这在[JavaMail javadocs for com.sun.mail.pop3包]中有更详细的解释(http://javamail.kenai.com/nonav/javadocs/com/sun/mail/pop3/package- summary.html)。 –