IMAP Checking Folder Size

Kevin F neurogasm at
Mon Mar 20 16:21:19 CET 2006

I'm trying to use the following code to get my remote server's folder 
size information.  Unfortunately, i'm getting the error:

Traceback (most recent call last):
   File "/Life/School/Homework/Spring 2006/OPIM 
399/Tutorial/IMAP/", line 23, in -toplevel-
     number_of_messages_all += int(number_of_messages[0])
ValueError: invalid literal for int(): The requested item could not be 

What seems to be the problem?

My code is here:

import sys, os, string, imaplib, getpass

imap_server = ""

# Open a connection to the IMAP server
M = imaplib.IMAP4_SSL(imap_server)
M.login('xxxx', getpass.getpass())

# The list of all folders
result,list = M.list()

print "%-30s%5s%10s\n" % ("Folder", "# Msg", "Size")

number_of_messages_all = 0
size_all = 0

for item in list[:]:
     x = item.split()
     mailbox = string.join(x[2:])

     # Select the desired folder
     result, number_of_messages  =, readonly=1)
     number_of_messages_all += int(number_of_messages[0])

     size_folder = 0
     # Go through all the messages in the selected folder
     typ, msg =, 'ALL')
     # Find the first and last messages
     m = [int(x) for x in msg[0].split()]
     if m:
         message_set = "%d:%d" % (m[0], m[-1])
         result, sizes_response = M.fetch(message_set, "(UID RFC822.SIZE)")
         for i in range(m[-1]):
             tmp = sizes_response[i].split()
             size_folder += int(tmp[-1].replace(')', ''))
         size_folder = 0
     print "%-30s%5d%10s" % (mailbox, int(number_of_messages[0]), 
     size_all += size_folder

print "\n%-30s%5i%10.3f MB\n" % ("Sum", number_of_messages_all, 

# Close the connection

More information about the Python-list mailing list