Guest User

Untitled

a guest
Jun 19th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #!/usr/bin/python
  2. """
  3. This script will find Maildir folders under servers.* which are empty, and remove them
  4.  
  5. Author: Elan Ruusamäe <glen@delfi.ee>
  6. """
  7.  
  8. import mailbox
  9. import os
  10.  
  11. def purge(folder):
  12. for msgid, msg in folder.items():
  13. if 'T' in msg.get_flags():
  14. print "Purging[%s]: %s" % (folder._path, msgid)
  15. folder.discard(msgid)
  16. folder.flush()
  17.  
  18. def deltree(path):
  19. for p in os.listdir(path):
  20. dfn = os.path.join(path, p)
  21. if os.path.isdir(dfn):
  22. deltree(dfn)
  23. else:
  24. os.unlink(dfn)
  25. os.rmdir(path)
  26.  
  27. m = mailbox.Maildir("Maildir", factory=None)
  28. for name in m.list_folders():
  29. # only process folders which are named "servers.*"
  30. if name[:len("servers.")] != "servers.":
  31. continue
  32.  
  33. folder = m.get_folder(name)
  34.  
  35. # first purge folder
  36. purge(folder)
  37.  
  38. # check for mail count
  39. count = len(folder)
  40. if count == 0:
  41. print "Clean: " + name
  42. for path in ["courierimapkeywords"]:
  43. path = os.path.join(folder._path, path)
  44. if os.path.isdir(path):
  45. print "Delete: %s" % path
  46. deltree(path)
  47. m.remove_folder(name)
Add Comment
Please, Sign In to add comment