2009-03-09 7 views
1

J'ai besoin de télécharger des emails de la boîte de réception Gmail en utilisant seulement poplib.Malheureusement, je ne vois aucune option pour sélectionner Inbox seul, et poplib me donne des emails à partir d'éléments envoyés aussi.Sélectionnez les mails de la boîte de réception seul via poplib

Comment sélectionner les e-mails uniquement dans la boîte de réception?

Je ne souhaite utiliser aucune bibliothèque spécifique à Gmail.

Répondre

3

POP3 n'a pas de concept de «dossiers». Si Gmail vous montre à la fois le courrier 'envoyé' et le courrier 'reçu', alors vous n'avez vraiment pas d'autre choix que de recevoir tout ce courrier électronique.

Peut-être que vous feriez mieux d'utiliser IMAP4 au lieu de POP3. Python a des bibliothèques qui fonctionneront avec le serveur IMAP4 de Gmail.

+0

Merci ... Cela m'a aidé. :-) –

2

Je suppose que vous avez activé POP3/IMAP accès à 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.

+0

@Zachary: est-ce que [email.message_from_string] (http://docs.python.org/library/email.parser.html#email.message_from_string) aide? – tzot

Questions connexes