这是我的代码: http://pastebin.com/eN6xZ40P
我有两个我无法理解的错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\python26\lib\lib-tk\Tkinter.py", line 1410, in __call__
return self.func(*args)
File "D:/Users/user-pc/Desktop/mail/someTK.py", line 32, in sendMail
msg = MIMEText(output['Body'])
KeyError: 'Body'
答案 0 :(得分:0)
您需要正确操作界面。
各种电子邮件字段填充在fetch()
函数中,该函数在按下<Return>
键时调用,而不是在单击Send
按钮时调用。如果您填写表单字段,请按<Return>
,然后点击Send
它将尝试发送电子邮件。
我不知道它是否是最佳方式,但可以通过向<Return>
添加与Send
相同的绑定来使其工作。 1}}按钮:
b1 = Button(root, text='Send', command=sendMail)
b1.bind("<Button-1>", (lambda event, e=ents: fetch(e)))
另一种方法是在构建电子邮件之前在fetch()
内拨打sendMail()
。
更好的UI改进是禁用Send
按钮,直到提供了所有必填字段,但这超出了此问题的范围。