내가 작업하고있는 응용 프로그램에는 JavaMail을 사용하는 IMAP을 통해 메일 서버에 연결하는 기능이 있습니다.JavaMail 및 Exchange Server 2007의 문제점 - 잘못된 명령 인수
이제javax.mail.MessagingException: A13 BAD Command Argument Error. 11;
nested exception is:
com.sun.mail.iap.BadCommandException: A13 BAD Command Argument Error. 11
at com.sun.mail.imap.IMAPMessage.setFlags(IMAPMessage.java:847)
at javax.mail.Message.setFlag(Message.java:565) ...
, 그것은 무엇을하려고 한 것은 다음과 같은 : messages[i]
는 javax.mail.Message
입니다
messages[i].setFlag(Flags.Flag.RECENT, false);
고객 중 하나는 다음과 같은 스택 추적을했다.
이제이 오류는 Exchange Server 2003을 사용하는 클라이언트 중 한 명에게 발생하지 않았으며이 클라이언트는 Exchange Server 2007을 사용하고 있으므로이 서버와 관련이 있다고 생각합니다 (버그?). 또한 최신 서비스 팩 및 롤업 업데이트 (이 기사 작성 시점에서 서비스 팩 1 업데이트 8)와 최신 JavaMail (이 글을 쓰는 시점에서 1.4.2)에 업데이트되었는지 확인하고 아무런 영향을주지 않았습니다. 제 궁금한 점은, Microsoft가 고칠 때까지 기다려야 할 것이 있습니까? 제가 사용할 수있는 임시 해결책이 있습니까?
최근 플래그를 false로 설정하는 이유는 주어진 메시지가 두 번째 전달에서 다시 처리되지 않도록하기 위해서입니다. 즉, 최근 또는 새 메시지 만 처리합니다.
Exchange Server 2007의 다른 클라이언트 중 하나에 동일한 문제가있었습니다. 그들은 사서함을 삭제하고 다시 만들어서 문제를 "스스로 해결"했으며 2003 년에서 2007 년까지 업그레이드 문제가 발생했습니다.이 다른 클라이언트는 사서함을 다시 만들었음에도 불구하고 여전히 문제가 있습니다. 현재 2003 년을 사용중인 클라이언트 중 누구도 아직 불만을 제기하지 않았습니다. – Avrom
올바르게 가리킨 Javadocs를 이해했다면 메일 폴더를 제대로 닫은 다음 나중에 다시 열면 이전에 열어 본 모든 메시지에 대해 최근 플래그가 꺼져 있어야합니다. 그렇다면 내 요구를 충족시켜야합니다. – Avrom
@Avrom : 그것은 내 이해 일 것입니다. 닫고 다시 열면 새 메시지가 RECENT로 표시됩니다. 하지만 앱에 폴더에 액세스하는 유일한 앱이 있습니까? 그렇지 않은 경우 다른 프로그램에서 폴더를 열거 나 닫으면 문제가 발생할 것으로 판단됩니다. Exchange (또는 모든 IMAP 서버)가 응용 프로그램에 대한 최근 플래그를 유지할 것 인가 나는 의심 스럽다. 응용 프로그램에서 처리 된 메시지를 알아야하는 경우 메시지에서 사용자 정의 플래그를 설정해야 할 것입니다. –