mikrocontroller.net

Forum: PC-Programmierung Python imaplib UNSEEN gibt alle Mails aus.


Autor: Jan S. (jannemann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich möchte unter Python alle ungelesenen Mails per IMAP von Gmail 
abrufen.
Mein Postfach sieht in etwa so aus:
https://cdn0.tnwcdn.com/wp-content/blogs.dir/1/fil...
(z.B. 5 ungelesene Mails)

Beim Abrufen der Mails mit dem UNSEEN-Flag bekomme ich eine Liste, die 
wesentlich länger als 5 ist.
import imaplib
from pprint import pprint

imapObj = imaplib.IMAP4_SSL('imap.gmail.com')
imapObj.login('meineMailAdresse@gmail.com', 'MEIN_PASSWORT')
mailboxes = imapObj.list()
pprint(mailboxes)

imapObj.select('INBOX')
result, data = imapObj.uid('search', None, "UNSEEN")
print('Ungelesene Nachrichten:')
print(data)

Dazu erhalte ich folgende Ausgabe:
[b'(\\HasNoChildren) "/" "Arbeit"',
 b'(\\HasNoChildren) "/" "Belege"',
 b'(\\HasNoChildren) "/" "INBOX"',
 ....
 b'(\\HasNoChildren \\Important) "/" "[Gmail]/Wichtig"']

Ungelesene Nachrichten:
[b'300 301 303 307 309 310 ..... 450']

Meine Erwartung wäre gewesen, dass ich die Ausgabe
[b'446 447 448 449 450']
bekomme.

Laut Dokumentation, wird das SEEN-Flag automatisch gesetzt, wenn ich 
eine Mail im Browser öffne. Daher sollte meine Anzahl ungesesener 
Nachrichten doch wesentlich kleiner sein.

Was mache ich falsch? Habt ihr Tipps zum weiteren Vorgehen?
Ich habe mal eine der angeblich ungelesenen Mails geparsed, dort war ein 
Seen-Flag zu sehen.

Grüße und danke für hilfreiche Tipps!

Autor: yesitsme (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab das zwar nie gegen Gmail getestet, aber habe ein None weniger im 
Aufruf:

imapObj.uid("SEARCH", "UNSEEN")

Vielleicht geht das.

Autor: Jan S. (jannemann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Info,
Das 'None' weniger mache bei mir leider keinen Unterschied. Sämtliche 
Beispiele, die ich im Netz gefunden habe, haben diesen Aufbau.

Habe ich ein Verständnisproblem? Oder ist die Rückgabe tatsächlich 
"falsch"?
Ich werde das Script heute abend mal gegen einen anderen Provider 
testen.

yesitsme schrieb:
> imapObj.uid("SEARCH", "UNSEEN")
Bei dir geht es so? Mit welchem Provider?

Hat Jemand die Möglichkeit das Script ein weiteres mal bei Gmail zu 
testen und meine Rückgabe zu bestätigen? Das Beispiel lauffähig sein.

Autor: Jan S. (jannemann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan S. schrieb:
> Ich werde das Script heute abend mal gegen einen anderen Provider
> testen.

Ich habe das Script gerade erfolgreich mit einem anderen Provider 
getestet. Kann mir jemand helfen, wie ich das Problem bei gmail in Griff 
bekommen könnte? Meine Python-Kenntnisse sind leider nicht so gut, dass 
ich in den Modulen debuggen möchte (bzw. ich habe es noch nie gemacht).

Weiß jemand, ob ich das irgendwo als Bug melden kann/sollte?
Ist es überhaupt einer?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.