2009-03-09 4 views
1

Ich muss E-Mails aus dem Gmail-Posteingang nur mit poplib herunterladen. Leider sehe ich keine Option, Posteingang allein zu wählen, und poplib gibt mir auch E-Mails von gesendeten Elementen.Mails per Post aus dem Posteingang auswählen

Wie wähle ich nur E-Mails aus dem Posteingang?

Ich möchte keine gmail-spezifischen Bibliotheken verwenden.

Antwort

3

POP3 hat kein Konzept von "Ordnern". Wenn in gmail sowohl "send" als auch "empfangene" E-Mails angezeigt werden, haben Sie wirklich keine andere Möglichkeit, als diese E-Mails zu erhalten.

Vielleicht wären Sie besser dran mit IMAP4 statt POP3. Python verfügt über Bibliotheken, die mit dem IMAP4-Server von Google Mail funktionieren.

+0

Danke ... Es half. :-) –

2

Ich nehme an, Sie POP3/IMAP-Zugriff auf Ihr Google Mail-Konto aktiviert haben.

Dies ist ein Beispielcode:

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

oder so etwas.

+0

@Zachary: Hilft [email.message_from_string] (http://docs.python.org/library/email.parser.html#email.message_from_string) überhaupt? – tzot