2017-03-14 9 views
0

JavaMailとプロトコルimapを使用して電子メール(gmail)を整理します。 私はコードでフォルダFOLDER1を作成します。JavaMail:フォルダ名が取得できない

Folder newFolder = parent.getFolder(folderName); 
if (!newFolder.exists()) 
    isCreated = newFolder.create(Folder.HOLDS_MESSAGES); 

私はコードでメッセージを移動:

Folder f = store.getFolder(folderName); 
Message[] msgs = { msg }; 
f.appendMessages(msgs); 

それは

に動作しますが、私が欲しいときに私が...理解していません既に読み込まれたメッセージではなく、すでに作成されたフォルダにはないメッセージは再度読み込むことはできません。 名前がすでにINBOXさ

String folderName = message.getFolder().getName();// INBOX!! and not FOLDER1 
String fullName = message.getFolder().getFullName();// INBOX!! and not INBOX/FOLDER1 

問題は何ですか? Messageオブジェクトのあなたの助けのための

おかげ

答えて

0

コンテンツは、他のフォルダに追加されます。 Messageオブジェクト自体は、引き続き元のフォルダ内のメッセージを参照します。他のフォルダ内のメッセージのコピーを見つけるには、別のフォルダを開いてそれを検索する必要があります。

IMAPFolder.copyUIDMessagesメソッドを使用すると、メッセージのUIDを別のフォルダに取得し、 UIDFolder.getMessageByUIDメソッドを使用して、他のフォルダー内のメッセージを表すMessageオブジェクトを取得します。 (IMAP Folderオブジェクトは常にUIDFolderインターフェイスを実装します)

+0

なぜgetFolder( "受信ボックス")はすべてのメッセージ(他のフォルダと一緒に)を返すのですか? – lg0173

+0

メッセージを別のフォルダにコピーし、それをINBOXフォルダから削除しないと、メッセージはINBOXフォルダに残ります。 –

+0

でもcom.sun.mail.pop3はjavax.mailではありませんか?それは問題だ ? – lg0173

関連する問題