IMAP Folder Size Information

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Kevin F

    #1

    IMAP Folder Size Information

    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/mailboxsize.py" , line 23, in -toplevel-
    number_of_messa ges_all += int(number_of_m essages[0])
    ValueError: invalid literal for int(): The requested item could not be
    found.




    What seems to be the problem?

    My code is here:




    import sys, os, string, imaplib, getpass

    imap_server = "webmail.xxxxx. xxxxx.edu"

    # Open a connection to the IMAP server
    M = imaplib.IMAP4_S SL(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_messa ges_all = 0
    size_all = 0

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

    # Select the desired folder
    result, number_of_messa ges = M.select(mailbo x, readonly=1)
    number_of_messa ges_all += int(number_of_m essages[0])

    size_folder = 0
    # Go through all the messages in the selected folder
    typ, msg = M.search(None, 'ALL')
    # Find the first and last messages
    m = [int(x) for x in msg[0].split()]
    m.sort()
    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(')', ''))
    else:
    size_folder = 0
    print "%-30s%5d%10s" % (mailbox, int(number_of_m essages[0]),
    size_folder);
    size_all += size_folder

    print "\n%-30s%5i%10.3f MB\n" % ("Sum", number_of_messa ges_all,
    size_all/1e6)

    # Close the connection
    M.logout()
Working...