Tagebuch-Eintrag #36
Projekt-Idee: PDF aus Email drucken – Schritt #1
Eine Verbindung um IMAP-Server aufzubauen ist vielleicht noch der leichte Schritt. Dazu habe ich mich belesen und für diese Funktion gibt es ein Python-Modul, welches imaplib heißt.
Das Modul wird einfach importiert und danach kann es genutzt werden um sich auf dem IMAP-Server einzuloggen.
Da ich noch sehr grün hinter den Ohren bin, habe ich nach Tutorials geschaut, wie solch eine Funktion für den Login-Vorgang aussieht.
Dabei habe ich diese Webseite gefunden und ich nutze davon das Beispiel #4 in einer etwas modifizierten Variante:
https://www.programcreek.com/python/example/2875/imaplib.IMAP4_SSL
import imaplib
def check_inbox(host, port, user, password):
try:
server = imaplib.IMAP4_SSL(host, port)
server.login(user, password)
print("Erfolgreich eingelogged!")
except:
print("Fehler")
return -1
server.select("Inbox")
new_mail = server.search(None, 'UNSEEN FROM "name@emaildomain.de"')[1][0]
new_mail = new_mail.decode("UTF-8")
# Means no new mail
if len(new_mail) == 0:
print("Keine neue Mails vorhanden!")
else:
new_mail = new_mail.split(" ")
print ("Es sind insgesamt", len(new_mail), "E-Mail(s) vorhanden.")
# Close & Logout
server.close()
server.logout()
check_inbox("hostname", "imap_port", "user_name", "user_password")
In den Zeile 13 und 14 suche ich im Posteingang (Inbox) nach ungelesene Emails vom bestimmten Absender, welches ich nach FROM eintrage.
Wenn keine Email mit den o.g. Bedingungen vorhanden sind, wird „Keine neue Mails vorhanden!“ ausgegeben.
Ansonsten wird die Anzahl der gefundenen Emails mit den o. g. Bedingungen ausgegeben.
Für Testzwecken habe ich ein separates Email-Postfach dazu angelegt und der Filter mit den Kriterien funktioniert schon mal.
Insgesamt ist der Code sehr laienhaft – ich bin ja auch noch ein blutiger Anfänger in Python 😉 Ich denke, wenn ich alle Funktionen fertig habe, die ich für das Programm brauche, werde ich den Code noch verfeinern und optimieren.
Im nächste Schritt geht es nun darum den Betreff der Emails ausgelesen und die PDF-Anhänge zu speichern/drucken. Das wird der schwierigste Teil werden. Auch wenn ich mich schon informiert habe, dass ich dazu wohl noch ein das email Modul von Python verwenden muss.
Ich belese mich erstmal und dann sehe ich weiter.