Возникли проблемы с поплибом

Я хочу получить все письма из учетной записи Gmail, используя poplib: https://docs.python.org/2/library/poplib.html

Я сталкиваюсь с проблемой, что это не дает правильное количество электронных писем (в действительности это дало только 10%), а также электронные письма, которые он мог получить, были начальными.

Прямо сейчас я использовал тот же код, который приведен в примере документации.

import getpass, poplib
user= raw_input('Enter Username')
Mailbox = poplib.POP3_SSL('pop.googlemail.com', '995') 
Mailbox.user(user) 
Mailbox.pass_(getpass.getpass()) 
numMessages = len(Mailbox.list()[1])
print numMessages
for i in range(numMessages):
    for msg in Mailbox.retr(i+1)[1]:
        print msg
print Mailbox.stat()
Mailbox.quit()

Пожалуйста, скажите мне, как решить это. Спасибо

1 ответ

Решение

Из моего прошлого опыта я могу получить только около 200~300 писем, в то время как в моем полном почтовом ящике более 10 тысяч писем И мое решение было переключиться на imaplib, вот пример кода:

import imaplib

conn= imaplib.IMAP4_SSL('imap.googlemail.com')
conn.login('your_account@gmail.com', 'your_password')
status, dummy= conn.select('INBOX')
if status != 'OK':
    raise RuntimeError, "Failed to select inbox"

code, data= conn.search(None, CRITERION)
if code == 'OK':
    msgid_list= data[0].split()
else:
    raise RuntimeError, "Failed to get message IDs"

for msgid in msgid_list:
    code, data= conn.fetch(msgid, '(RFC822)')

    if code == 'OK':
        PROCESS(data)
    else:
        raise RuntimeError, "could not retrieve msgid %r" % msgid

conn.close()
conn.logout()

А для части CRITERION, посмотрите эту ссылку и выберите ту, которая вам нравится

http://nullege.com/codes/search/imaplib.IMAP4_SSL.search

Другие вопросы по тегам