2012-10-01 2 views
3

나는 (주어진 사용자를위한) 모든 폴더를 검색하는 방법을 찾고 있습니다.Javamail을 사용하여 사용 가능한 모든 IMAP 폴더를 검색하는 방법이 있습니까?

나는 IMAP SEARCH command이 먼저 작동하도록 사서함을 선택해야한다는 것을 알고 있습니다. 검색 결과를 해당 사서함으로 범위 지정해야합니다.

Javamail IMAP 구현은 Folder 개체에서 작동하는 search 함수를 구현합니다. 이것은 지정된 폴더 내에서 검색한다는 점에서 스펙을 모방하는 것으로 보입니다.

getDefaultFolder 메서드를 사용하여 검색 한 특수 '기본 폴더'를 IMAPStore에서 검색 할 수 있으면 다른 모든 폴더가 포함 된 루트 폴더가 반환되기를 바랍니다. 그러나 검색된 Folder은 사용 가능한 모든 폴더 목록을 제공 할 수 있지만 형식은 HOLDS_MESSAGES이 아니므로 메시지에 액세스하거나 검색하는 데 사용할 수 없습니다.

모든 폴더에서 메시지를 검색하는 다른 방법이 있습니까, 아니면 각 폴더를 개별적으로 검색해야합니까?

두 개 이상의 하이퍼 링크를 게시 할 수 없지만 여기에 설명 된 방법에 대한 정보를 볼 수있는 Javamail com.sun.mail.imap documentation에 액세스 할 수 있습니다.

+1

방금 ​​폴더를 검색하기위한 실험적인 IMAP 명령 인 [ESEARCH 명령] (http://tools.ietf.org/html/rfc6237#section-3)에 대한 참조가 발견되었습니다. 우리가 사용하고있는 메일 서버가 (아파치 제임스) Javamail이 이것을 지원하는지 확실하지 않다. – goodforenergy

+0

ESEARCH 명령이 제대로 작동하지 않을 수 있습니다. 별도의 질문을했습니다 : http://stackoverflow.com/questions/12683288/what-is-wrong-with-this-imap-esearch-command-syntax – goodforenergy

답변

1

IMAP 프로토콜은이 기능을 제공하지 않으므로 JavaMail은 모든 폴더를 반복하고 각 폴더에서 검색하여 수행 할 수있는 것보다 더 훌륭하게 수행 할 수 없습니다.

+0

Javamail ESEARCH에 대한 지원이 없기 때문에 모든 것을 반복하는 것으로 돌아갑니다. 감사! – goodforenergy

관련 문제