类型错误:get() 缺少 1 个必需的位置参数:'index1'

som*_*r_3 2 python tkinter

我正在尝试制作一个超级简单的电子邮件客户端。这将使我能够从学校向我的家庭计算机发送电子邮件,因为它们已阻止 Outlook 和 Gmail。当我尝试运行它时,它说: TypeError: get() missing 1 required positional argument: 'index1' 为了安全起见,我已经用 asterix 替换了我的电子邮件和密码。提前致谢 :)

这是我的代码:

from tkinter import *
import tkinter as tk
from email.message import EmailMessage
import smtplib

window=Tk()
window.title('Email Client')
window.geometry('200x275')

textbox2=Text(window,width=20,height=10,bg='light grey')
label2=Label(window,text='Message')
textbox1=Text(window,width=20,height=1,bg='light grey')
label1=Label(window,text='Subject')

def email_alert(subject, body, to):
    msg = EmailMessage()
    msg.set_content(body)
    msg['subject'] = subject
    msg['to'] = to

    user = "*******************"
    msg['from'] = user
    password = "*************"

    server = smtplib.SMTP("smtp.gmail.com", 587)
    server.starttls()
    server.login(user, password)
    server.send_message(msg)

    server.quit()

if __name__ == '__main__':
    def Send():
        dialog = textbox1.get()
        subject = textbox2.get()
        email_alert(subject, dialog, "******************")

label1.pack()
textbox1.pack()
label2.pack()
textbox2.pack()

button1=Button(window,text='Send Email',width=10,height=1, command=Send)
button1.pack()

window.mainloop()
Run Code Online (Sandbox Code Playgroud)

ThR*_*Rnk 5

在您的send()函数上,您需要添加get()参数。

dialog = textbox1.get("1.0",'end-1c')
subject = textbox2.get("1.0",'end-1c')
Run Code Online (Sandbox Code Playgroud)

第一部分,"1.0"意味着应该从第一行,字符零读取输入。

end-1c是在2份分为:

  1. end: 读到文末。
  2. 1c: 从末尾开始删除 1 个字符。

它删除最后一个字符以删除最后一个字符,\n因此您的电子邮件不会以多余的行结尾。