次のコードを使用してGmailからすべてのメールをダウンロードしていますが、残念ながら、返されるメールの総数はアカウント内のメールの総数と一致しません。特に、最初の43通のメッセージを受け取ることができますが、受信トレイで見逃されたメッセージは20通以上あります。おそらく、これはプルバックできる数のある種の制限です(?)。支援を提供してくれてありがとう!
import imaplib, email, base64
def fetch_messages(username, password):
messages = []
conn = imaplib.IMAP4_SSL("imap.gmail.com", 993)
conn.login(username, password)
conn.select()
typ, data = conn.uid('search', None, 'ALL')
for num in data[0].split():
typ, msg_data = conn.uid('fetch', num, '(RFC822)')
for response_part in msg_data:
if isinstance(response_part, tuple):
messages.append(email.message_from_string(response_part[1]))
typ, response = conn.store(num, '+FLAGS', r'(\Seen)')
return messages