2017-12-24 11 views
0

IMAP 폴더 이벤트를 수신하고 수신하는 Java 응용 프로그램을 개발 중이지만 다음 코드를 작동시킬 수 없습니다. 분명히, 나는 중요한 메소드 호출이나 설정을 놓치고있다. Folder 이벤트를 얻으려면 어떻게해야합니까?JavaMail - Java 응용 프로그램이 폴더 이벤트를 수신하지 않습니다.

IMAPSSLStore store = (IMAPSSLStore)session.getStore("imaps"); 
    store.connect("host","username","pwd"); 
    store.addFolderListener(new FolderListener() { 
      @Override 
      public void folderCreated(FolderEvent fe) { 
       //do something 
      } 

      @Override 
      public void folderDeleted(FolderEvent fe) { 
       //do something 
      } 

      @Override 
      public void folderRenamed(FolderEvent fe) { 
       //do something 
      } 
     }); 

     for(;;) { 
      store.idle(); 
     } 

샘플 코드를 수정하여 Listener를 폴더에 추가하려고 시도했습니다. 표준 이메일 클라이언트를 사용하여 폴더 생성 및 삭제를 테스트하고 있습니다. 그러나 이벤트가 내 Java 응용 프로그램에 전달되지 않습니다. 귀하의 도움을 주시면 감사하겠습니다.

답변

1

불행하게도 IMAP 프로토콜은 이러한 이벤트에 대한 알림을 제공하지 않으므로 JavaMail은 동일한 저장소를 사용하는 응용 프로그램의 다른 스레드가 이러한 작업 중 하나를 수행하는 경우에만 이러한 이벤트를 사용자에게 알립니다.

+0

재미 있습니다. 이것은 POP3Folder 및/또는 GmailFolder에도 적용됩니까? – Eagle

+0

예, 사용되는 프로토콜의 제한 사항입니다. –