2017-11-27 5 views
0

こんにちは私はIMAPプロトコルを使ってメールボックスに接続していて、そのフォルダのフォルダとプロセスメールをjavaメールで処理しています。メールボックスフォルダに「/」がある場合は、コードにエラーまたは例外が表示されず、エラーメールが表示されます。「1つ以上のフォルダ名に「/」または「250」以上の文字が含まれています。これらのフォルダの名前を変更してください: •テスト/テスト(テスト/テスト) "「/」を含むメールボックスフォルダを読み取れませんでした。メールボックスを読むためにIMAPプロトコルを使用しています

ここでフォルダ名を変更するにはどうしたらいいですか?私のJavaコード自体?

ここは私が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

あなたは電子メールを取得している場合は、この問題は非常に可能性の高いサーバーソフトウェアの制限です、そしてあなたは、コードでそれを回避するつもりはありません。 Webコンソールで名前を変更し、将来この文字を含むフォルダを作成しないようにしているようです。

電子メールは、サーバーがクライアントにエクスポートする予定がないため、そこに変更することはできません。

サーバーソフトウェアとは何ですか?

+0

Microsoft Exchange Serverを使用しています。 –

0

私が理解しているところから、IMAPの名前付けサポート(および他の多くの命名基準)の結果が見て取っています。 MAPIはより寛大であり、フォルダに名前を付けるときにスラッシュなどの特殊文字を使用できます。

JavamailはMAPIをサポートしておらず、今後の予定はありません。理論をテストする場合は、jmapiなどのJava MAPIライブラリを使用してフォルダを読み取ろうとするとよいでしょう。次に、フォルダの名前を変更する必要はありません。

+0

は、mavenリポジトリでjmapiを利用できますか? –

+0

これはしばらく前に作成され、非アクティブに見えます。残念ながら、それはmavenまたはnexusレポではありません。 – dkherbert

関連する問題