Seite 1 von 1

Script zum Download von Email Anhänge

Verfasst: Mittwoch 27. Juni 2018, 10:23
von Fabraptor
Hallo ich möchte mir ein Script erstellen was ein Anhang von einer Email runterladet via IMAP. Ich nutze die IMAPClient Bibliotek. Angefangen habe ich schon die E-Mails eines Ordners aufzulisten nur als Test und funktioniert auch.

Das ist erstmal der Code:

Code: Alles auswählen

from imapclient import IMAPClient

## Variablen ##
imap = 'imap.web.de'
username = ''
passwd =''
folder = ''
server = IMAPClient(imap)

## Server Imap Login ##
server.login(username, passwd)

## Navigation Server und Ausgabe zum Testen ##
server_info = server.select_folder(folder)
print('%d messages im Ordner' % server_info[b'EXISTS'])
Kann mir dabei einer helfen?
Ich relativ neu in Python programmieren

LG Fabraptor

Re: Script zum Download von Email Anhänge

Verfasst: Mittwoch 27. Juni 2018, 10:43
von __blackjack__
Ich hatte Dir im Ubuntuusers-Forum ja schon gesagt, dass Du jetzt mit `search()` die Nachrichten suchen musst, die Dich interessieren, und dann mit `fetch()` die RFC822 formatierten Nachrichten vom Server holen musst. Und dann kannst Du die mit entsprechenden Funktionen aus der Standardbibliothek parsen, und nach PDF-Anhängen durchgehen, und die dann speichern.

Anmelden, Ordner auswählen, und Anzahl der Nachrichten im Ordner ermitteln hast Du aus der Python-Session im „Getting Started“-Abschnitt in der IMAPClient-Dokumentation schon übernommen. Als nächstes wird dort `search()` und `fetch()` gezeigt. Wo kommst Du denn da nicht weiter? Du müsstest die Dokumentation der Methoden lesen, und bei `search()` ist auch der Abschnitt im IMAP-RFC verlinkt, wo beschrieben wird wie die Suchkriterien beschrieben werden.

Du wirst nicht darum herum kommen Dir zu erarbeiten wie IMAP funktioniert und wie MIME-Nachrichten aufgebaut sind wenn Du IMAP verwenden und MIME-Nachrichten auseinander nehmen willst. Und wenn Du das mit Python machen willst, wirst Du auch Python lernen müssen. Damit würde ich anfangen, denn `search()` liefert eine Liste und `fetch()` verschachtelte Wörterbücher (`dict`), und dafür braucht man Python-Grundlagenwissen.