JavaMail을 사용하여 폴더에서 다른 폴더로 메시지를 복사 할 때 예외가 발생하는 경우가 있습니다.

StackOverflow https://stackoverflow.com//questions/21040020

  •  21-12-2019
  •  | 
  •  

문제

하나의 폴더에서 다른 폴더로 메시지 목록을 복사하려고하면이 예외가 나타납니다.

 nested exception is :
 com.sun.mail.iap.BadCommandException: A5 BAD COPY failed. Invalid messageset.
 at com.sun.mail.imap.IMAPFolder.copyMesages(IMAPFolder.java.1769)
 Caused by:
 com.sun.mail.iap.BadCommandException: A5 BAD COPY failed. Invalid messageset.
 at com.sun.mail.iap.Protocol.handleResult(Protocol.java:353)
 at com.sun.mail.iap.Protocol.simpleCommand(Protocol.java:373) ...
.

내 코드 :

 public void moveMessageToTrash(String sourceFolder, String destinationFolder,
                         MimeMessage mimeMessage) throws MessagingException
  {
   IMAPFolder source = null;
   IMAPFolder destination = null;
   if(store.isConnected())
    {
     source = (IMAPFolder) store.getFolder(sourceFolder);
     destin= (IMAPFolder) store.getFolder(destinationFolder);
     source.open(Folder.READ_WRITE);
     destin.open(Folder.READ_WRITE);
    }
   Message [] messages = new MimeMessage[1];
   messages[0] = mimeMessage;
   source.copyMessages(messages,destin);
   source.setFlags(messages,new Flags(Flags.Flag.DELETED),true);
   source.expunge():
  }   
.

편집 :

를 제거하기 전에

   source.expunge();
.

Throw 한 예외는 다음과 같습니다 :

   messageRemovedException. 
.

및 JavaMail 세션의 초기화에 대해 이미 알리는 것보다 디버거가 더 많은 것이 아니라 아무 것도 없습니다.

When the copy fails, nothing is said by the debugger. Everything is shown is only at the initialization of the session :

   INFO : DEBUG : JavaMail version 1.5.1
   INFO : DEBUG : failed to load any providers, using defaults.
   INFO : DEBUG : Tables of loaded providers.
   INFO : DEBUG : Providers Listed By Class Name :     {com.sun.mail.smtp.SMTPSSLTRANSORT=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTRANSPORT,Oracle,1.5.1]....
   INFO : DEBUG : Providers Listed By Protocol :
   ....
   INFO : DEBUG : failed to load address map, using defaults.
.

내가 말하고 싶은 것은 내가 source.expunge ()를 제거한 후에는 더 이상 예외가 없지만 실제로 실패가 여전히 존재하지만 일부 메시지는 대상에 복사되고 삭제 된 세트소스 및 소스 번호는 대상에 복사되지만 소스가 아닌 거기에서 삭제 된 설정을 설정합니다.

도움이 되었습니까?

해결책

복사중인 메시지 중 일부는 응용 프로그램에서 또는 동일한 폴더에 액세스하는 일부 응용 프로그램에서 삭제되고 삭제되었습니다.자세한 프로토콜 추적이 더 많은 정보를 제공 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top