diff options
author | Paul Kocialkowski | 2023-04-16 15:35:31 +0200 |
---|---|---|
committer | Paul Kocialkowski | 2023-04-16 15:35:31 +0200 |
commit | 217ff13e2d95bc69543d6472681f38dbffec3a30 (patch) | |
tree | 5d0ae2d773495894ec408e568d78b5f9e3ad7c4c | |
parent | b4235b70cde217c75e79d529a553e387cbaf1bb5 (diff) |
imap-tool: Add support for mailbox rename
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
-rwxr-xr-x | imap-tool | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -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 |