Der einfachste Weg, mit Google Mail verwenden imaplib ist das X-GM-RAW
Attribut zu verwenden, wie in den Gmail Imap Extensions page beschrieben.
würde der Prozess so aussehen:
Zuerst mit der entsprechenden E-Mail und Passwort für den Account:
c.select("INBOX")
:
c = imaplib.IMAP4_SSL('imap.gmail.com', 993)
email = '[email protected]'
password = 'spamspamspam'
c.login(email, password)
dann zu einem des Ordner/Labels verbinden
Bei Bedarf können Sie alle verfügbaren Ordner/Etiketten mit c.list()
auflisten.
Schließlich verwenden die Suchmethode:
gmail_search = "has:attachment eggs OR spam"
status, data = c.search(None, 'X-GM-RAW', gmail_search)
In der gmail_search
Sie die gleichen Suchsyntax in gmail advanced search verwendet verwenden können.
Der Suchbefehl gibt den Status des Befehls und die IDs aller Nachrichten zurück, die mit Ihrer gmail_search übereinstimmen.
Danach können Sie jede Nachrichten-ID holen mit:
for id in data[0].split():
status, data = gmail.fetch(id, '(BODY[TEXT])')
Das ist nicht wahr. Sie können conn.select ("some-label-name") nicht ausführen. –
@pyrony: Ja, du kannst. Gmail ** -Etiketten ** werden als IMAP-Postfächer der obersten Ebene ** angezeigt. Ich bin mir nicht sicher, warum sie sich dafür entschieden haben, anstatt sie als IMAP-Keywords zu veröffentlichen, aber Gmail hat sich dafür entschieden. – dkarp