Sélectionner des mails dans la boîte de réception uniquement via poplib
Question
Je dois télécharger les e-mails de la boîte de réception gmail uniquement à l'aide de poplib. Malheureusement, je ne vois aucune option permettant de sélectionner la boîte de réception uniquement. Poplib me donne également les e-mails des éléments envoyés.
Comment sélectionner des courriers électroniques uniquement dans la boîte de réception?
Je ne souhaite utiliser aucune bibliothèque spécifique à Gmail.
La solution
POP3 n'a pas de concept de "dossiers". Si Gmail affiche les messages "envoyés" et "reçus", vous n'avez pas d'autre choix que de recevoir tous ces messages.
Vous feriez peut-être mieux d'utiliser IMAP4 au lieu de POP3. Python a des bibliothèques qui fonctionneront avec le serveur IMAP4 de gmail.
Autres conseils
Je suppose que vous avez activé l'accès POP3 / IMAP à votre compte GMail.
Ceci est un exemple de code:
import imaplib
conn= imaplib.IMAP4_SSL('imap.googlemail.com')
conn.login('yourusername', 'yourpassword')
code, dummy= conn.select('INBOX')
if code != 'OK':
raise RuntimeError, "Failed to select inbox"
code, data= self.conn.search(None, ALL)
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)')
# you can also use '(RFC822.HEADER)' only for headers
if code == 'OK':
pass # your code here
else:
raise RuntimeError, "could not retrieve msgid %r" % msgid
conn.close()
conn.logout()
ou quelque chose comme ça.
Ce code Java vous suggère de sélectionner un "dossier" particulier. à télécharger, même en utilisant POP3. Encore une fois, cela utilise Java, pas Python, donc YMMV.