我正在尝试在一个小项目中使用addMessageCountListener(用于POP3协议),但它不起作用。
这是我添加了监听器的代码:
protected void openFolder() {
try {
this.inbox = this.store.getFolder("INBOX");
if (inbox == null) {
throw new Exception("No POP3 INBOX");
}
this.inbox.open(Folder.READ_WRITE);
this.inbox.addMessageCountListener(new MessageCountAdapter() {
public void messagesAdded(MessageCountEvent ev) {
System.out.println("Event");
Message [] msgs = ev.getMessages();
for (Message msg : msgs) {
System.out.println("msg");
System.out.println(AbstractReceiverClient.getTextFromMsg("email", "subject", msg));
}
}
public void messagesRemoved(MessageCountEvent ev) {}
});
}
catch(Exception e) {
System.out.println(e.getMessage());
}
}
在这里,我要求服务器每5秒钟收到一次消息。
public void worker() {
try {
while(true){
java.lang.Thread.sleep(5000);
System.out.println(this.inbox.getMessageCount());
}
}
catch(Exception e){}
}
结果,我只看到了消息的数量(g.e. 18),但是我在programm运行后发送了一条消息。
PS。谢谢你的帮助
答案 0 :(得分:0)
这是因为POP3协议不允许新邮件在您的INBOX打开时显示。