Python 3.x Tkinter smtplib错误未定义
我正在尝试制作一个发送电子邮件的程序。但如果我试一下,我就会出错Python 3.x Tkinter smtplib错误未定义,python-3.x,tkinter,runtime-error,smtplib,Python 3.x,Tkinter,Runtime Error,Smtplib,我正在尝试制作一个发送电子邮件的程序。但如果我试一下,我就会出错 Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\Pivo\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1550, in __call__ return self.func(*args) File "C:\
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Pivo\AppData\Local\Programs\Python\Python35-32\lib\tkinter\__init__.py", line 1550, in __call__
return self.func(*args)
File "C:\Users\Pivo\Desktop\emailtkinter.py", line 24, in th
server.sendmail(vari2.get(), toaddrs12, message)
NameError: name 'server' is not defined
完整代码:
import smtplib
from tkinter import *
root = Tk()
class FullScreenApp(object):
def __init__(self, master, **kwargs):
self.master=master
pad=3
self._geom='200x200+0+0'
master.geometry("{0}x{1}+0+0".format(
master.winfo_screenwidth()-pad, master.winfo_screenheight()-pad))
master.bind('<Escape>',self.toggle_geom)
def toggle_geom(self,event):
geom=self.master.winfo_geometry()
print(geom,self._geom)
self.master.geometry(self._geom)
self._geom=geom
app=FullScreenApp(root)
def fn():
def th():
a = text.get("1.0", END)
dgc = assa.get()
message = dgc, a
server.sendmail(vari2.get(), toaddrs12, message)
server.quit
Label(root, text='To').pack()
toaddrs12 = StringVar()
toaddrs1 = Entry(root, textvariable=toaddrs12).pack()
Label(root, text='Subject').pack()
assa = StringVar()
ass = Entry(root, textvariable=assa).pack()
Label(root, text='Body').pack()
text = Text(root)
text.pack()
btn = Button(root, text='Send', command=th)
btn.pack()
b = Label(root, text='SMTP Server')
vari1 = StringVar()
ab = Entry(root, textvariable=vari1)
b.pack()
ab.pack()
ba = Label(root, text = 'Email')
ba.pack()
vari2 = StringVar()
c = Entry(root, textvariable=vari2)
c.pack()
ca = Label(root, text = 'Password')
ca.pack()
vari3 = StringVar()
widget = Entry(root, show="*", textvariable=vari3)
widget.pack()
def connect():
print(vari1.get())
print(vari2.get())
print(vari3.get())
server = smtplib.SMTP(vari1.get(), 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(vari2.get(), vari3.get())
b.pack_forget()
ab.pack_forget()
ba.pack_forget()
c.pack_forget()
ca.pack_forget()
widget.pack_forget()
btn1.pack_forget()
fn()
btn1 = Button(root, command = connect, text = 'Connect')
btn1.pack()
root.mainloop()
import smtplib
from tkinter import *
root = Tk()
class FullScreenApp(object):
def __init__(self, master, **kwargs):
self.master = master
pad = 3
self._geom = '200x200+0+0'
master.geometry("{0}x{1}+0+0".format(
master.winfo_screenwidth() - pad, master.winfo_screenheight() - pad))
master.bind('<Escape>', self.toggle_geom)
def toggle_geom(self, event):
geom = self.master.winfo_geometry()
print(geom, self._geom)
self.master.geometry(self._geom)
self._geom = geom
app = FullScreenApp(root)
def fn():
def th():
contents = text.get("1.0", END)
subject = assa.get()
message = "Subject: {}\n\n{}".format(subject, contents)
server.sendmail(vari2.get(), toaddrs12.get(), message)
server.quit()
Label(root, text='To').pack()
toaddrs12 = StringVar()
toaddrs1 = Entry(root, textvariable=toaddrs12).pack()
Label(root, text='Subject').pack()
assa = StringVar()
ass = Entry(root, textvariable=assa).pack()
Label(root, text='Body').pack()
text = Text(root)
text.pack()
btn = Button(root, text='Send', command=th)
btn.pack()
b = Label(root, text='SMTP Server')
vari1 = StringVar()
ab = Entry(root, textvariable=vari1)
b.pack()
ab.pack()
ba = Label(root, text='Email')
ba.pack()
vari2 = StringVar()
c = Entry(root, textvariable=vari2)
c.pack()
ca = Label(root, text='Password')
ca.pack()
vari3 = StringVar()
widget = Entry(root, show="*", textvariable=vari3)
widget.pack()
def connect():
print(vari1.get())
print(vari2.get())
print(vari3.get())
global server
server = smtplib.SMTP(vari1.get(), 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(vari2.get(), vari3.get())
b.pack_forget()
ab.pack_forget()
ba.pack_forget()
c.pack_forget()
ca.pack_forget()
widget.pack_forget()
btn1.pack_forget()
fn()
btn1 = Button(root, command=connect, text='Connect')
btn1.pack()
root.mainloop()
导入smtplib
从tkinter进口*
root=Tk()
类FullScreenApp(对象):
定义初始(自我、主控、**kwargs):
self.master=master
pad=3
自我评价_geom='200x200+0+0'
几何体(“{0}x{1}+0+0”。格式(
master.winfo_屏幕宽度()-pad,master.winfo_屏幕高度()-pad))
主绑定(“”,自切换)
def切换_geom(自身、事件):
geom=self.master.winfo_geometry()
打印(几何图形、自/几何图形)
自学几何(自学几何)
自。_geom=geom
app=FullScreenApp(根目录)
def fn():
def th():
a=text.get(“1.0”,结束)
dgc=assa.get()
消息=dgc,a
sendmail(vari2.get(),toaddrs12,message)
server.quit
标签(根,text='To').pack()
toaddrs12=StringVar()
toaddrs1=条目(根,textvariable=toaddrs12).pack()
标签(root,text='Subject').pack()
assa=StringVar()
ass=条目(根,textvariable=assa).pack()
标签(根,text='Body').pack()
text=文本(根)
text.pack()
btn=按钮(根,text='Send',command=th)
btn.pack()
b=标签(根,text='SMTP服务器')
vari1=StringVar()
ab=条目(根,textvariable=vari1)
b、 包()
ab.pack()
ba=标签(根,文本='Email')
文学士
vari2=StringVar()
c=条目(根,textvariable=vari2)
c、 包()
ca=标签(根,文本='密码')
ca.pack()
vari3=StringVar()
小部件=条目(根,show=“*”,textvariable=vari3)
widget.pack()
def connect():
打印(vari1.get())
打印(vari2.get())
打印(vari3.get())
server=smtplib.SMTP(vari1.get(),587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(vari2.get(),vari3.get())
b、 打包
ab.打包忘记()
ba.pack_忘记()
c、 打包
ca.打包忘记()
widget.pack_忘记()
btn1.打包忘记()
fn()
btn1=按钮(根,命令=连接,文本=连接)
btn1.pack()
root.mainloop()
必须将变量服务器声明为全局变量
global server
server = smtplib.SMTP(vari1.get(), 587)
此外,必须更正函数,必须连接数据。
如果执行a,b
操作,则创建的是元组:(a,b)
,而不是所需的字符串
def th():
contents = text.get("1.0", END)
subject = assa.get()
message = "Subject: {}\n\n{}".format(subject, contents)
server.sendmail(vari2.get(), toaddrs12.get(), message)
server.quit()
完整代码:
import smtplib
from tkinter import *
root = Tk()
class FullScreenApp(object):
def __init__(self, master, **kwargs):
self.master=master
pad=3
self._geom='200x200+0+0'
master.geometry("{0}x{1}+0+0".format(
master.winfo_screenwidth()-pad, master.winfo_screenheight()-pad))
master.bind('<Escape>',self.toggle_geom)
def toggle_geom(self,event):
geom=self.master.winfo_geometry()
print(geom,self._geom)
self.master.geometry(self._geom)
self._geom=geom
app=FullScreenApp(root)
def fn():
def th():
a = text.get("1.0", END)
dgc = assa.get()
message = dgc, a
server.sendmail(vari2.get(), toaddrs12, message)
server.quit
Label(root, text='To').pack()
toaddrs12 = StringVar()
toaddrs1 = Entry(root, textvariable=toaddrs12).pack()
Label(root, text='Subject').pack()
assa = StringVar()
ass = Entry(root, textvariable=assa).pack()
Label(root, text='Body').pack()
text = Text(root)
text.pack()
btn = Button(root, text='Send', command=th)
btn.pack()
b = Label(root, text='SMTP Server')
vari1 = StringVar()
ab = Entry(root, textvariable=vari1)
b.pack()
ab.pack()
ba = Label(root, text = 'Email')
ba.pack()
vari2 = StringVar()
c = Entry(root, textvariable=vari2)
c.pack()
ca = Label(root, text = 'Password')
ca.pack()
vari3 = StringVar()
widget = Entry(root, show="*", textvariable=vari3)
widget.pack()
def connect():
print(vari1.get())
print(vari2.get())
print(vari3.get())
server = smtplib.SMTP(vari1.get(), 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(vari2.get(), vari3.get())
b.pack_forget()
ab.pack_forget()
ba.pack_forget()
c.pack_forget()
ca.pack_forget()
widget.pack_forget()
btn1.pack_forget()
fn()
btn1 = Button(root, command = connect, text = 'Connect')
btn1.pack()
root.mainloop()
import smtplib
from tkinter import *
root = Tk()
class FullScreenApp(object):
def __init__(self, master, **kwargs):
self.master = master
pad = 3
self._geom = '200x200+0+0'
master.geometry("{0}x{1}+0+0".format(
master.winfo_screenwidth() - pad, master.winfo_screenheight() - pad))
master.bind('<Escape>', self.toggle_geom)
def toggle_geom(self, event):
geom = self.master.winfo_geometry()
print(geom, self._geom)
self.master.geometry(self._geom)
self._geom = geom
app = FullScreenApp(root)
def fn():
def th():
contents = text.get("1.0", END)
subject = assa.get()
message = "Subject: {}\n\n{}".format(subject, contents)
server.sendmail(vari2.get(), toaddrs12.get(), message)
server.quit()
Label(root, text='To').pack()
toaddrs12 = StringVar()
toaddrs1 = Entry(root, textvariable=toaddrs12).pack()
Label(root, text='Subject').pack()
assa = StringVar()
ass = Entry(root, textvariable=assa).pack()
Label(root, text='Body').pack()
text = Text(root)
text.pack()
btn = Button(root, text='Send', command=th)
btn.pack()
b = Label(root, text='SMTP Server')
vari1 = StringVar()
ab = Entry(root, textvariable=vari1)
b.pack()
ab.pack()
ba = Label(root, text='Email')
ba.pack()
vari2 = StringVar()
c = Entry(root, textvariable=vari2)
c.pack()
ca = Label(root, text='Password')
ca.pack()
vari3 = StringVar()
widget = Entry(root, show="*", textvariable=vari3)
widget.pack()
def connect():
print(vari1.get())
print(vari2.get())
print(vari3.get())
global server
server = smtplib.SMTP(vari1.get(), 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(vari2.get(), vari3.get())
b.pack_forget()
ab.pack_forget()
ba.pack_forget()
c.pack_forget()
ca.pack_forget()
widget.pack_forget()
btn1.pack_forget()
fn()
btn1 = Button(root, command=connect, text='Connect')
btn1.pack()
root.mainloop()
导入smtplib
从tkinter进口*
root=Tk()
类FullScreenApp(对象):
定义初始(自我、主控、**kwargs):
self.master=master
pad=3
自洽性_geom='200x200+0+0'
几何体(“{0}x{1}+0+0”。格式(
master.winfo_屏幕宽度()-pad,master.winfo_屏幕高度()-pad))
主绑定(“”,自切换)
def切换_geom(自身、事件):
geom=self.master.winfo_geometry()
打印(几何图形、自/几何图形)
自学几何(自学几何)
自。_geom=geom
app=FullScreenApp(根目录)
def fn():
def th():
contents=text.get(“1.0”,结束)
subject=assa.get()
message=“Subject:{}\n\n{}”。格式(Subject,contents)
sendmail(vari2.get(),toaddrs12.get(),message)
server.quit()
标签(根,text='To').pack()
toaddrs12=StringVar()
toaddrs1=条目(根,textvariable=toaddrs12).pack()
标签(root,text='Subject').pack()
assa=StringVar()
ass=条目(根,textvariable=assa).pack()
标签(根,text='Body').pack()
text=文本(根)
text.pack()
btn=按钮(根,text='Send',command=th)
btn.pack()
b=标签(根,text='SMTP服务器')
vari1=StringVar()
ab=条目(根,textvariable=vari1)
b、 包()
ab.pack()
ba=标签(根,text='Email')
文学士
vari2=StringVar()
c=条目(根,textvariable=vari2)
c、 包()
ca=标签(根,text='Password')
ca.pack()
vari3=StringVar()
小部件=条目(根,show=“*”,textvariable=vari3)
widget.pack()
def connect():
打印(vari1.get())
打印(vari2.get())
打印(vari3.get())
全局服务器
server=smtplib.SMTP(vari1.get(),587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(vari2.get(),vari3.get())
b、 打包
ab.打包忘记()
ba.pack_忘记()
c、 打包
ca.打包忘记()
widget.pack_忘记()
btn1.打包忘记()
fn()
btn1=按钮(根,命令=连接,文本=连接)
btn1.pack()
root.mainloop()
感谢您今天第二次光临!