
Am 26.02.2015 um 11:43 schrieb Christopher Arndt:
Am 26.02.2015 um 07:17 schrieb Thomas Güttler:
So weit ich weiß ist die imaplib von Python eher "low level".
Das ist wahr.
Eine high level, python-mäßige API wäre mit natürlich lieber.
Das ist ja ein sehr allgemeines Requirement. Was ist dein Einsatzzweck. Geht es vor allem um das Retrieval von Mails oder die Verwaltung der Mails im Imap-Account oder um die Verarbeitung der E-Mails?
Mir geht es hier nur im die IMAP-Schnittstelle. Also Parsen von Mails usw. ist wieder eine ganz andere Geschichte. Die Trennung ist mir bewusst. Eine Lib die beides anbietet wäre mir auch eher suspekt.
Für ersteres gibt es IMAPClient: https://bitbucket.org/mjs0/imapclient
Für das Parsen von E-Mails gibt es imbox: https://github.com/martinrusev/imbox
Hat hier jemand Erfahrung oder Hinweise?
Ich habe beide Bibliotheken testweise ausprobiert und von ihnen eigene Forks erstellt und teilweise umfangreiche Änderungen daran vorgenommen, besonders an imbox. Zu IMAPClient habe ich vor allem eine moderne Unterstützung von STARTTLS basierend auf pyOpenSSL hinzugefügt, die mit allen wesentlichen Python-Versionen funktioniert.
OK, das spricht dafür, dass IMAPClient() nicht so besonders ausgereift ist, oder? Gibt es nicht eine Lib die damit schon richtig umgehen kann? Prinzipiell wäre ich ja auch bereit Geld zu bezahlen. Zeit für das Forken und Anpassen habe ich nicht. Kleine Verbesserungen mache ich gerne und erstelle auch gerne einen Pull-Request. Das ist keine Frage.
https://bitbucket.org/SpotlightKid/imapclient https://github.com/SpotlightKid/imbox
Generell ist aber dringend zu empfehlen, bei der Verarbeitung von E-Mails auf Python 3, und dabei insbesondere Version 3.4 zu setzen. Das email-Package in der Standardlib von Python ist in älteren Versionen nicht wirklich Unicode-sauber.
Wie gesagt, ich nutze nur IMAP. Ich parse die Mails nicht. Also sollte ich mit Unicode kaum in Berührung kommen. OK, vielleicht bei Ordnernamen. ... Mal sehen. Tut mir Leid, wenn meine Antwort etwas "barsch" klingt. Deine Antwort war durchaus hilfreich. Gruß, Thomas