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

MRAB google at mrabarnett.plus.com
Fri Jul 25 19:07:35 CEST 2008

On Jul 25, 1:18 pm, SteveC <sbc... at gmail.com> wrote:
> 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.

More information about the Python-list mailing list