Domanda

Devo scaricare le e-mail dalla posta in arrivo di Gmail solo usando poplib. Sfortunatamente non vedo alcuna opzione per selezionare Inbox da solo, e poplib mi dà e-mail anche dagli elementi inviati.

Come seleziono le email solo dalla posta in arrivo?

Non voglio usare nessuna libreria specifica di Gmail.

È stato utile?

Soluzione

POP3 non ha il concetto di "cartelle". Se gmail ti sta mostrando sia la posta "inviata" che quella "ricevuta", allora non hai davvero alcuna opzione se non quella di ricevere tutta quell'email.

Forse sarebbe meglio usare IMAP4 invece di POP3. Python ha librerie che funzioneranno con il server IMAP4 di gmail.

Altri suggerimenti

Presumo che tu abbia abilitato l'accesso POP3 / IMAP al tuo account GMail.

Questo è il codice di esempio:

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()

o qualcosa del genere.

Questo codice Java suggerisce che puoi selezionare una particolare cartella " cartella " per scaricare, anche quando si utilizza POP3. Ancora una volta, questo utilizza Java, non Python, quindi YMMV.

Come scaricare un messaggio da GMail usando Java (un post sul blog discute sul push del contenuto in un motore di ricerca Lucene localmente)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top