Hallo liebe Community,
ich habe mir von mitp das Buch "Raspberry Pi programmieren mit Python" gekauft.
Hier ist auch eine Anleitung drin um Anhänge per Mail zu versenden über smtplib. Was gut funktioniert ist die Standardausführung über das Shell. D. h. ich geb die Mailadresse per Input weiter ins Shell.
Jetzt möchte ich das ganze aber etwas hübscher über ein TKinter-Window lösen.
Anbei mal mein Ansatz:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import datetime
import RPi.GPIO as GPIO
from PIL import Image
import smtplib
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from tkinter import *
from time import sleep
def Mailintro():
window= Tk()
window.title ("E-Mailversand?")
window.attributes ('-fullscreen', TRUE)
image = PhotoImage(file='das entsprechende Bild')
label = Label(master=window, width=20,font = ("Arial", 16))
MailEntry = Entry(master=window)
SendMail = Button(master=window,
text="Bild versenden", width=20,font = ("Arial", 16),
command=Mail)
label = Label(master=window, image=image)
label.pack()
MailEntry.pack()
SendMail.pack(side=LEFT, padx=2, pady=2)
window.after(20000, window.destroy)
window.mainloop()
def Mail():
f = open('tmp.jpg', 'rb')
image = MIMEImage(f.read())
f.close()
m = MIMEMultipart()
m['To'] = input(MailEntry).get
m['From'] = 'meine Mailadresse'
m['Subject'] = 'Test'
m.attach(image)
s = smtplib.SMTP('smtp.web.de')
s.starttls()
s.login('BENUTZERNAME', 'PASSWORT!')
s.send_message(m)
s.quit()
os.system ("gm display Abschlussbild")
quit()
def dest():
window= Tk()
window.destroy()
def MailReady():
dest()
Mail()
Alles anzeigen
Leider denkt Python dass der Name MailEntry nicht definiert ist, obwohl ich das ja gemacht habe im TKinter. Oder bin ich da absolut auf dem Holzweg? Ich vermute mal TKinter-Objekte (Labels, Entrys,...) sind in Input nicht kompatibel, oder?
Hier die Fehlermeldung: File "/home/pi/Desktop/Test/Hollywood/hier 3.py", line 48, in Mail
m['To'] = input(MailEntry).get
NameError: name 'MailEntry' is not defined
Wäre cool wenn mir da jemand helfen könnte.