I have a 5GB mailbox which I moved using imapsync. But somehow I messed up with --delete/--delete2 option and end up with almost all the messages having \Deleted flag set. I do not have delayed expunge enabled, so I can not use unexpunge utility. I am using cyrus-imapd v2.3.7. Using cyrus-imapd's debugging feature I found out that email client(Roundcube in my case) fires following IMAP command to unset it.
UID STORE 179 -FLAGS.SILENT (\Deleted)
I don't know if somehow I can fire this command for all the mails.
Is there any way I can unset \Deleted flag for all the mails in the mailbox?
Using @geekosaur's tip of specifying range of message-ids in the above command, I could solve it for one mailbox under INBOX like INBOX.folder1. Is there any way I can do it for multiple mailboxes under INBOX recursively? Now I am working on solving it using/creating some script, maybe using Perl's IMAP related module. But still I need to solve it asap so inputs are welcome.
Thanks to geekosaur, I succeeded in solving it using Perl's IMAPClient module. I will soon post my solution on my blog sachintech.net and post the link here.