2017-11-27 32 views
0

안녕하세요. IMAP 프로토콜을 사용하는 사서함에 연결하고 있으며 폴더를 나열하고 해당 메일을 폴더로 처리합니다. 사서함 폴더에 '/'기호가있을 때마다 코드에서 오류 또는 예외가 발생하지 않고 오류 전자 메일이 표시됩니다. "하나 이상의 폴더 이름에"/ "또는 250 자 이상의 문자가 포함되어 있습니다. 문자를 포함하는 이름이있는 폴더는 IMAP 전자 메일 프로그램에 다운로드 할 수 없습니다. • 테스트/테스트 (테스트/테스트) "'/'가 포함 된 사서함 폴더를 읽을 수 없습니다. 메일 상자를 읽으려고 IMAP 프로토콜을 사용하고 있습니다.

어떻게 폴더 이름을 내 자바 코드 자체?

다음은 java에서 사용한 코드입니다.

Properties props = System.getProperties(); 
     props.setProperty("mail.imap.ssl.enable", "true"); 
     props.setProperty("mail.store.protocol", "imaps"); 
     props.setProperty("mail.imaps.ssl.trust", "*"); 
     props.setProperty("mail.imaps.starttls.enable", "true"); 
     props.setProperty("mail.imap.auth.plain.disable", "true"); 
     props.setProperty("mail.imap.auth.ntlm.disable", "true"); 
     props.setProperty("mail.imap.auth.gssapi.disable", "true"); 
     props.put("mail.debug", "true"); 

     Session session = Session.getInstance(props, null); 
     store = session.getStore("imaps"); 
     store.connect("**********",993,"User**","Pass****"); 

     Folder defaultFolder = store.getDefaultFolder(); 
     System.out.println(defaultFolder.getFullName()); 

     if (defaultFolder.list().length != 0) { 
      System.out.println(ListFolders(defaultFolder.list())); 
     } 
+0

거기에 '/'가있는 폴더의 이름을 바꿀 수있는 스크립트가 있습니까? –

답변

0

이메일을 받고있는 경우는,이 ​​문제는 매우 가능성이 서버 소프트웨어의 제한 사항입니다, 당신은 코드에서 해결하지 않을거야. 웹 콘솔에서 이름을 변경하고 나중에이 캐릭터가 포함 된 폴더를 만들지 않아야합니다.

전자 메일은 서버가 클라이언트로 내보낼 예정이 아니라는 것을 분명히 보여 주므로 사용자가 변경할 수있는 것이 없습니다.

서버 소프트웨어 란 무엇입니까?

+0

Microsoft Exchange Server를 사용하고 있습니다. –

0

나는 IMAP 명명 지원 (및 많은 다른 명명 표준)의 결과를보고 있습니다. MAPI는 더 관대하며 폴더에 이름을 지정할 때 슬래시를 비롯한 일부 특수 문자를 사용할 수 있습니다.

Javamail은 MAPI를 지원하지 않으며 향후에 사용할 의도가 없습니다. 이론을 테스트하려면 jmapi과 같은 java MAPI 라이브러리를 사용하여 폴더를 읽을 수 있습니다. 그런 다음 폴더의 이름을 바꿀 필요가 없습니다.

+0

는 maven 저장소에서 jmapi를 사용할 수 있습니까? –

+0

그것은 얼마 전에 만들어졌으며 비활성 상태입니다. 불행히도 그것은 maven 또는 nexus repo에 없습니다. – dkherbert