POP3 - Using poplib only shows the first few hundred messages in themailbox

S

SteveC

Hello,

I am trying to use POP3_SSL class of the poplib module to read email
from my gmail account. I can connect just fine using the example here
http://www.python.org/doc/lib/pop3-example.html

import getpass, poplib

M = poplib.POP3('localhost')
M.user(getpass.getuser())
M.pass_(getpass.getpass())
numMessages = len(M.list()[1])
for i in range(numMessages):
for j in M.retr(i+1)[1]:
print j


That is the above sample code from the python doc. While everything
works fine, the problem is that when I use the list() function it only
returns about 400 messages starting from the beginning of my inbox. I
have probably 10,000 emails in my gmail account. I don't see any pop3
object functions to "move" around the inbox or anything of the like.

Could someone point me in the right direction? I'm sure there must be
something simple I am missing.

Thanks,
Steve
 
M

MRAB

Hello,

I am trying to use POP3_SSL class of the poplib module to read email
from my gmail account.  I can connect just fine using the example herehttp://www.python.org/doc/lib/pop3-example.html

import getpass, poplib

M = poplib.POP3('localhost')
M.user(getpass.getuser())
M.pass_(getpass.getpass())
numMessages = len(M.list()[1])
for i in range(numMessages):
    for j in M.retr(i+1)[1]:
        print j

That is the above sample code from the python doc.  While everything
works fine, the problem is that when I use the list() function it only
returns about 400 messages starting from the beginning of my inbox.  I
have probably 10,000 emails in my gmail account.  I don't see any pop3
object functions to "move" around the inbox or anything of the like.

Could someone point me in the right direction?  I'm sure there must be
something simple I am missing.
That's a lot of emails! :)

I had a quick look at poplib.py and I couldn't see any limit in the
code itself. Perhaps it's the gmail server that's doing it. Can you
retrieve the later messages, eg have you tried M.retr(500)? If you can
then you could just try retrieving messages beyond what M.list() says
until it says there's no such message.
 
S

SteveC

I am trying to use POP3_SSL class of thepoplibmodule to read email
from my gmail account.  I can connect just fine using the example herehttp://www.python.org/doc/lib/pop3-example.html
import getpass,poplib
M =poplib.POP3('localhost')
M.user(getpass.getuser())
M.pass_(getpass.getpass())
numMessages = len(M.list()[1])
for i in range(numMessages):
    for j in M.retr(i+1)[1]:
        print j
That is the above sample code from the python doc.  While everything
works fine, the problem is that when I use the list() function it only
returns about 400 messages starting from the beginning of my inbox.  I
have probably 10,000 emails in my gmail account.  I don't see any pop3
object functions to "move" around the inbox or anything of the like.
Could someone point me in the right direction?  I'm sure there must be
something simple I am missing.

That's a lot of emails! :)

I had a quick look atpoplib.py and I couldn't see any limit in the
code itself. Perhaps it's the gmail server that's doing it. Can you
retrieve the later messages, eg have you tried M.retr(500)? If you can
then you could just try retrieving messages beyond what M.list() says
until it says there's no such message.

Nothing changes when I retrieve the messages it first provides me.
What baffles me is I see tons of examples online doing the same thing:
http://python.about.com/od/simplerscripts/ss/backup_gmail_3.htm

I'm not sure if it could be just a gmail thing either, because then it
would seem that this would be a problem with any pop email client.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top