email - java mail: IMAP, renaming a folder which has children -
i use latest java mail api. want rename imap folder contains children (subfolders). suppose have inbox , inbox has 1 subfolder inbox.folder1. folder1 has 1 subfolder full name inbox.folder1.subfolder1
i want rename folder1 folder2 , want see:
inbox.folder2.subfolder1
but after code
// folder instance corresponds folder1 newfolder = folder.getfolder(newname); //newname = "folder2" folder.renameto(newfolder); i have if connect using outlook or thunderbird
inbox.folder1.subfolder1
inbox.folder2
we have 2 folders, expect one. , subfolder1 still sitting in folder1. , can not enter folder or subfolder1, generate error message: reason given: mailbox not exist, or must subscribed to.
should use setsubscripbed(true/false)? have handle subfolders separately iterating each one?
i solved. first turned on debugging mode of thunderbird stated in:
https://wiki.mozilla.org/mailnews:logging#environment_variables_to_set
then renamed folder contained many subfolders.
as see, have call subscribe folders new name , unscribe old name order specified in log file.
without calling subscribe/unsubscribe method calls, message in mail server console
68 ok folder renamed.
but not enough , have corrupted folder structure.
9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 68 rename "inbox.folder1" "inbox.folder2" 9944[ab79a70]: readnextline [stream=a6db068 nb=23 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 68 ok folder renamed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 69 subscribe "inbox.folder2" 9944[ab79a70]: readnextline [stream=a6db068 nb=26 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 69 ok folder subscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 70 unsubscribe "inbox.folder1" 9944[ab79a70]: readnextline [stream=a6db068 nb=28 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 70 ok folder unsubscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 71 subscribe "inbox.folder2.subfolder1.subsubfolder1.subsubsubfolder1b" 9944[ab79a70]: readnextline [stream=a6db068 nb=26 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 71 ok folder subscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 72 unsubscribe "inbox.folder1.subfolder1.subsubfolder1.subsubsubfolder1b" 9944[ab79a70]: readnextline [stream=a6db068 nb=28 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 72 ok folder unsubscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 73 subscribe "inbox.folder2.subfolder1.subsubfolder1.subsubsubfolder1a" 9944[ab79a70]: readnextline [stream=a6db068 nb=26 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 73 ok folder subscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 74 unsubscribe "inbox.folder1.subfolder1.subsubfolder1.subsubsubfolder1a" 9944[ab79a70]: readnextline [stream=a6db068 nb=28 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 74 ok folder unsubscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 75 subscribe "inbox.folder2.subfolder3.subsubfolder3" 9944[ab79a70]: readnextline [stream=a6db068 nb=26 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 75 ok folder subscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 76 unsubscribe "inbox.folder1.subfolder3.subsubfolder3" 9944[ab79a70]: readnextline [stream=a6db068 nb=28 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 76 ok folder unsubscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 77 subscribe "inbox.folder2.subfolder3" 9944[ab79a70]: readnextline [stream=a6db068 nb=26 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 77 ok folder subscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 78 unsubscribe "inbox.folder1.subfolder3" 9944[ab79a70]: readnextline [stream=a6db068 nb=28 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 78 ok folder unsubscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 79 subscribe "inbox.folder2.subfolder1.subsubfolder1" 9944[ab79a70]: readnextline [stream=a6db068 nb=26 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 79 ok folder subscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 80 unsubscribe "inbox.folder1.subfolder1.subsubfolder1" 9944[ab79a70]: readnextline [stream=a6db068 nb=28 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 80 ok folder unsubscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 81 subscribe "inbox.folder2.subfolder2" 9944[ab79a70]: readnextline [stream=a6db068 nb=26 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 81 ok folder subscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 82 unsubscribe "inbox.folder1.subfolder2" 9944[ab79a70]: readnextline [stream=a6db068 nb=28 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 82 ok folder unsubscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 83 subscribe "inbox.folder2.subfolder1" 9944[ab79a70]: readnextline [stream=a6db068 nb=26 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 83 ok folder subscribed. 9944[ab79a70]: 7cea000:192.168.0.104:a:senddata: 84 unsubscribe "inbox.folder1.subfolder1" 9944[ab79a70]: readnextline [stream=a6db068 nb=28 needmore=0] 9944[ab79a70]: 7cea000:192.168.0.104:a:createnewlinefromsocket: 84 ok folder unsubscribed.
Comments
Post a Comment