By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,908 Members | 2,041 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,908 IT Pros & Developers. It's quick & easy.

IMAP Checking Folder Size

P: n/a
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_messages_all += int(number_of_messages[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_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 = M.select(mailbox, 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 = 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_messages[0]),
size_folder);
size_all += size_folder

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

# Close the connection
M.logout()
Mar 20 '06 #1
Share this Question
Share on Google+
1 Reply


P: n/a
In article <dv***********@netnews.upenn.edu>,
Kevin F <ne*******@gmail.com> wrote:
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_messages_all += int(number_of_messages[0])
ValueError: invalid literal for int(): The requested item could not be
found.
.... # Select the desired folder
result, number_of_messages = M.select(mailbox, readonly=1)
number_of_messages_all += int(number_of_messages[0])


A general observation about imaplib, the caller usually has
some analysis to do on the returned data. For example, you
have to check that `result' value, before you can assume that
you got the data you asked for. I would suggest that you print
these values out somewhere, it will put you in a position where
you can probably answer your question better than we can.

Donn Cave, do**@u.washington.edu
Mar 20 '06 #2

This discussion thread is closed

Replies have been disabled for this discussion.