我有一个5GB的邮箱,我使用imapsync移动。 但不知何故,我搞砸了 – 删除/ – delete2选项,并最终几乎所有的消息\ Deleted标志设置。 我没有延迟清除启用,所以我不能使用unexpunge实用程序。 我正在使用cyrus-imapd v2.3.7。 使用cyrus-imapd的debuggingfunction,我发现电子邮件客户端(我的情况是Roundcube)会在IMAP命令后触发,以解除它。
UID STORE 179 -FLAGS.SILENT (\Deleted)
我不知道是否可以用这个命令来发送所有的邮件。
有没有什么办法可以取消设置邮箱中所有邮件的删除标志?
更新 :
在上面的命令中使用@ geekosaur的message-id范围的提示,我可以像INBOX.folder1那样为INBOX下的一个邮箱解决这个问题。 有什么办法,我可以为INBOXrecursion多个邮箱吗? 现在我正在使用/创build一些脚本来解决它,也许使用Perl的IMAP相关模块。 但是,我仍然需要尽快解决,所以欢迎input。
更新 :
感谢geekosaur,我成功地用Perl的IMAPClient模块解决了这个问题。
你可以指定一个范围的消息start:end ,而不是单个消息号码(在你的例子中为179 ); 使用SEARCH ALL找出有效的消息号码范围。
请注意,这是假设您可以使用原始的IMAP,如果它是(如果它应该是),使用AUTHENTICATE而不是LOGIN可能是痛苦的。您可能更喜欢find某种types的IMAP工具包(注意Cyrus imapd来与Perl库,可用于脚本login和执行各种操作,虽然你需要有一些熟悉的RFC 2060。