def execute(*args, **kw): """ Delete mailbox """ if len(conf.cli_args) < 1: print >> sys.stderr, _("No mailbox specified") sys.exit(1) imap = IMAP() imap.connect() delete_folders = [] while len(conf.cli_args) > 0: folder = conf.cli_args.pop(0) folders = imap.list_folders(folder) if len(folders) < 1: print >> sys.stderr, _("No such folder(s): %s") % (folder) delete_folders.extend(folders) if len(delete_folders) == 0: print >> sys.stderr, _("No folders to delete.") sys.exit(1) for delete_folder in delete_folders: try: imap.delete_mailfolder(delete_folder) except Exception, errmsg: log.error(_("Could not delete mailbox '%s'") % (delete_folder))
from pykolab.imap import IMAP from pykolab.translate import _ log = pykolab.getLogger('pykolab.cli') conf = pykolab.getConf() def __init__(): commands.register('delete_mailbox', execute, description=description(), aliases=['dm']) def description(): return """Delete a mailbox or sub-folder. Note that the mailbox or folder is removed recursively.""" def execute(*args, **kw): """ Delete mailbox """ try: delete_folder = conf.cli_args.pop(0) except IndexError, e: print >> sys.stderr, _("No mailbox specified") sys.exit(1) imap = IMAP() imap.connect() delete_folders = imap.lm(delete_folder) for delete_folder in delete_folders: imap.delete_mailfolder(delete_folder)