2013-09-03 3 views
1

우리는 읽기/쓰기 IMAP 연결을 열고 특정 메시지를 검색하는 제 3 자의 Java 응용 프로그램을 가지고 있습니다. 그러나 그것도 "읽음"으로 표시합니다. 나는이 응용 프로그램이 읽기/쓰기 연결을 열어 사실로 인한 것 같아요. 이 앱이 "읽은 (본)"imap 플래그를 업데이트하지 못하게 할 수있는 방법이 있습니까? IMAP에 대한 연결을 열 때 설정할 수있는 매개 변수일까요?Javamail을 사용할 때 IMAP 메시지 상태 정보 (imap 플래그) 유지

+2

메시지를 가져올 때 body가 아닌 body.peek를 사용해야합니다. SELECT 대신 EXAMINE을 사용하면 읽기 전용으로 사서함을 열어야합니다. – Max

답변

2

Open 읽기/쓰기 대신 read-only 폴더.

+0

우리는 IMAP에 사용자 지정 사용자 플래그를 설정했기 때문에 읽기/쓰기 폴더를 열어야합니다. –

+2

아, 글쎄, 너는 그렇게 말하지 않았다! :-) Message 객체를 가져온 후 com.sun.mail.imap.IMAPMessage로 캐스팅하고 [setPeek] (https://javamail.java.net/nonav/docs/api/com/sun/mail/)을 사용합니다. imap/IMAPMessage.html # setPeek (boolean)) 메소드를 호출합니다. –

+0

나를 위해이 작동하지 않습니다 - 내 폴더가 열리지 만 표시된 플래그가 설정되어 있습니다. READ_ONLY – mithrandir

-1

당신은 하나의 메시지에 대해이 작업을 수행 할 수 있습니다

folder.setFlags(new Message[] {message}, new Flags(Flags.Flag.SEEN), false); 

또는 메시지의 목록

:

folder.setFlags(messageList, new Flags(Flags.Flag.SEEN), false); 

곳 UNREAD에 대한 false 의미합니다.

+0

그는 읽지 않은 메시지를 표시하고 싶지 않습니다. 그는 메시지가 다운로드 될 때 처음에 읽음으로 표시하지 않기를 원합니다. – Max