Почему не работает мой python код smtplib? - PullRequest
0 голосов
/ 03 мая 2020

У меня проблема с smtplib в Python. Когда я закрываю программу или нажимаю «отправить», она продолжает выдавать ошибки

Что-то не так с smtp.sendmail(EMAIL_ADDRESS, sendto, msg) в Send_Email. Я пытался понять это, но это происходит каждый раз.

Exception in Tkinter callback

Traceback (most recent call last):

  File "C:\Program Files\Python38\lib\tkinter\__init__.py", line 1883, in __call__ return self.func(*args)

  File "C:/Users/Nándi/PycharmProjects/pygame1/pygame.py", line 21, in Send_Email
    smtp.sendmail(EMAIL_ADDRESS, sendto, msg)

  File "C:\Program Files\Python38\lib\smtplib.py", line 865, in sendmail
    (code, resp) = self.mail(from_addr, esmtp_opts)

  File "C:\Program Files\Python38\lib\smtplib.py", line 538, in mail
    self.putcmd("mail", "FROM:%s%s" % (quoteaddr(sender), optionlist))

  File "C:\Program Files\Python38\lib\smtplib.py", line 153, in quoteaddr
    if addrstring.strip().startswith('<'):

AttributeError: 'NoneType' object has no attribute 'strip'


import os
import smtplib
from tkinter import *

startlogin = 0

with smtplib.SMTP('smtp.gmail.com', 587) as smtp:
    smtp.ehlo()
    smtp.starttls()
    smtp.ehlo()

#TKinter Design
root = Tk()

def Continue():
    def Send_Email():
        sendto = SendTo_Entry.get()
        subject = Subject_Entry.get()
        body = Body_Entry.get()
        msg = f'Subject: {subject}\n\n{body}'
        smtp.sendmail(EMAIL_ADDRESS, sendto, msg)
        Sent = Label(sender, text="Sent!")
        Sent.grid(row=3, column=1)
    Email = Email_Entry.get()
    Password = Password_Entry.get()
    print(Email)
    print(Password)
    EMAIL_ADDRESS = os.environ.get(Email)
    EMAIL_PASSWORD = os.environ.get(Password)
    sender = Tk()
    sender.title("Sender")
    root.destroy()
    startlogin = 1
    SendTo_text = Label(sender, text="Send to: ")
    SendTo_text.grid(row=0, column=0)
    SendTo_Entry = Entry(sender)
    SendTo_Entry.grid(row=0, column=1)
    Subject_text = Label(sender, text="Subject: ")
    Subject_text.grid(row=1, column=0)
    Subject_Entry = Entry(sender)
    Subject_Entry.grid(row=1, column=1)
    Body_text = Label(sender, text="Body: ")
    Body_text.grid(row=2, column=0)
    Body_Entry = Entry(sender)
    Body_Entry.grid(row=2, column=1)
    Send = Button(sender, text="Send", pady=10, padx=30, command=Send_Email)
    Send.grid(row=3, column=0)

root.title("Login")
Login = Label(root, text="Log into your account: ")
Login.grid(row=0, column=0)
Email_text = Label(root, text="Email(Gmail): ")
Email_text.grid(row=1, column=0)
Email_Entry = Entry(root)
Email_Entry.grid(row=1, column=1)
Password_text = Label(root, text="Password: ")
Password_text.grid(row=2, column=0)
Password_Entry = Entry(root, show='*')
Password_Entry.grid(row=2, column=1)
Continue = Button(root, text="Continue", padx=20, pady=10, command=Continue)
Continue.grid(row=3, column=0)

root.mainloop()

if startlogin == 1:
    Email = Email_Entry.get()
    Password = Password_Entry.get()
    EMAIL_ADDRESS = os.environ.get(Email)
    EMAIL_PASSWORD = os.environ.get(Password)
    smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
    startlogin = 0
...