자바 메일 API를 사용하여 IMAP 클라이언트를 구현하고 있습니다. 내가 원하는 것은 메일 개수와 메일에 대한 변경 사항 (읽음/읽지 않음 등)에 대한 알림입니다. 다음과 같이이를 위해, 나는 열린 IMAP 폴더에 대한 두 개의 리스너를 썼다 :IMAP messageChangedListener()가 실행되지 않습니다.
IMAPStore imapStore = (IMAPStore) session.getStore("imaps");
imapStore.connect();
final IMAPFolder folder = (IMAPFolder) imapStore.getFolder("Inbox");
folder.open(IMAPFolder.READ_WRITE);
folder.addMessageCountListener(new MessageCountListener() {
public void messagesAdded(MessageCountEvent e) {
System.out.println("Message Count Event Fired");
}
public void messagesRemoved(MessageCountEvent e) {
System.out.println("Message Removed Event fired");
}
});
folder.addMessageChangedListener(new MessageChangedListener() {
public void messageChanged(MessageChangedEvent e) {
System.out.println("Message Changed Event fired");
}
});
을 다음과 같이 I는 별도의 스레드에서 서버에 IMAP IDLE 명령을 보내고있다.
그러나 새 메일이 오거나 메일이 삭제 될 때마다 "MessageCountListener"가 실행되는 문제가 있습니다. 그러나 메일 변경이 발생하면 "MessageChangedListener"가 시작되지 않습니다.
댓글 Shannon에게 감사드립니다. Gmail 계정을 사용하여 테스트하고 있습니다. 그들이 시설을 제공하기를 바랍니다. –
네가 맞습니다. 나는 다른 IMAP 서버로 시도하고 잘 작동했다. 놀랍게도 Google이 메시지 변경 알림을 제공하지 않는 것 같습니다. 그걸 해결하는 방법에 대한 아이디어가 있습니까? –
JavaMail 위키에서 [JavaMail과 함께 Gmail 사용] (http://kenai.com/projects/javamail/pages/Gmail)과 관련된 몇 가지 문제점을 찾을 수 있습니다. 또한 Gmail 도움말 페이지에서 [Gmail IMAP 구현의 제한 사항] (http://support.google.com/mail/bin/topic.py?hl=ko&topic=1668982&parent=1668981&ctx=topic) 목록을 찾을 수 있습니다. . –