summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-ximap-tool12
1 files changed, 12 insertions, 0 deletions
diff --git a/imap-tool b/imap-tool
index e99a6fd..0a7b941 100755
--- a/imap-tool
+++ b/imap-tool
@@ -16,6 +16,7 @@ class imap_action(Enum):
MAILBOX_SUBSCRIBE = 5
MAILBOX_UNSUBSCRIBE = 6
MAILBOX_STATS = 7
+ MAILBOX_RENAME = 8
class imap_tool():
host = "localhost"
@@ -41,6 +42,7 @@ class imap_tool():
" mailbox-delete [mailbox]\n" \
" mailbox-subscribe [mailbox]\n" \
" mailbox-unsubscribe [mailbox]\n" \
+ " mailbox-rename [mailbox] [mailbox]\n" \
" mailbox-stats"
def error_decode(self, data):
@@ -119,6 +121,13 @@ class imap_tool():
count = int(data[0])
print("Mailbox " + self.mailbox + " has " + str(count) + " entries")
+ elif self.action == imap_action.MAILBOX_RENAME:
+ ret, data = imap.rename(self.mailbox[0], self.mailbox[1])
+ if ret != "OK":
+ print("Error renaming mailbox " + self.mailbox[0] + " to " + self.mailbox[1] + ": " + self.error_decode(data))
+ raise Exception()
+
+ print("Renamed mailbox " + self.mailbox[0] + " to " + self.mailbox[1])
except Exception:
imap.logout()
return 1
@@ -166,6 +175,9 @@ class imap_tool():
elif action_option == "mailbox-stats":
self.action = imap_action.MAILBOX_STATS
self.mailbox = arguments[1]
+ elif action_option == "mailbox-rename":
+ self.action = imap_action.MAILBOX_RENAME
+ self.mailbox = [ arguments[1], arguments[2] ]
else:
print("Invalid action specified")
return 1