Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- """
- This script will find Maildir folders under servers.* which are empty, and remove them
- Author: Elan Ruusamäe <glen@delfi.ee>
- """
- import mailbox
- import os
- def purge(folder):
- for msgid, msg in folder.items():
- if 'T' in msg.get_flags():
- print "Purging[%s]: %s" % (folder._path, msgid)
- folder.discard(msgid)
- folder.flush()
- def deltree(path):
- for p in os.listdir(path):
- dfn = os.path.join(path, p)
- if os.path.isdir(dfn):
- deltree(dfn)
- else:
- os.unlink(dfn)
- os.rmdir(path)
- m = mailbox.Maildir("Maildir", factory=None)
- for name in m.list_folders():
- # only process folders which are named "servers.*"
- if name[:len("servers.")] != "servers.":
- continue
- folder = m.get_folder(name)
- # first purge folder
- purge(folder)
- # check for mail count
- count = len(folder)
- if count == 0:
- print "Clean: " + name
- for path in ["courierimapkeywords"]:
- path = os.path.join(folder._path, path)
- if os.path.isdir(path):
- print "Delete: %s" % path
- deltree(path)
- m.remove_folder(name)
Add Comment
Please, Sign In to add comment