Ошибка отправки электронной почты в python
Я разрабатываю приложение на python, которое отправляет электронную почту. Когда учетные данные для входа передаются в виде переменных, таких как: "server. login(fromadd, password)" Я получаю ошибку, что имя пользователя и пароль не приняты. Я использовал smtp-сервер gmail. Но когда я передаю учетные данные, такие как: "server. login ('xxxx',' xxxx')", где (xxxx=email и пароль) отправляется почта.Я установил debuglevel в true .Ниже приведен код и ошибка.
----------------------------------------------------------------------------
from tkinter import * from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email import encoders from email.mime.base import MIMEBase import smtplib import os import sqlite3 import MainWindow filelist=[] password="" def set_credentials(fromadd): con=sqlite3.connect("EmailDB.db") cursor=con.execute("SELECT PASSWORD FROM REGISTRATION WHERE EMAIL='%s'"%(fromadd)) for row in cursor: password=row[0] print(password) def getFile(): file_path=filedialog.askopenfilename() MailWindow.Attch.set(file_path) filelist.append(file_path) def getFile(): file_path=filedialog.askopenfilename() Attch.set(file_path) filelist.append(file_path) def mail_log(): con=sqlite3.connect("EmailDB.db") cursor=con.execute("INSERT INTO MAILBOX (TOADD,FROMADD,SUBJECT,BODY)VALUES(?,?,?,?)",(From.get(),To.get(),Subject.get(),txtBody.get("1.0",'end-1c'))) con.commit() def send(): domain=str(From.get()) server=smtplib.SMTP('smtp.gmail.com',587) fromadd=str(From.get()) toadd=To.get() subject=Subject.get() set_credentials(fromadd) msg=MIMEMultipart() msg['From']=fromadd msg['To']=toadd msg['Subject']=subject body=txtBody.get("1.0",'end-1c') msg.attach(MIMEText(body,'plain')) if filelist is not None: for file in filelist: part=MIMEBase('application','octet-stream') part.set_payload(open(file,"rb").read()) encoders.encode_base64(part) part.add_header('Content-Disposition',"attachment; filename=%s"%os.path.basename (file)) msg.attach(part) # Send Email Code try: server.starttls() server.set_debuglevel(True) server.login(fromadd,password) text=msg.as_string() server.sendmail(fromadd,toadd.split(","),text) messagebox.showinfo('Mail Sent') except: messagebox.showerror('Error','Cannot send mail') finally: server.quit() mail_log() m=Tk() m.geometry("800x550+300+100") To=StringVar() From=StringVar() Cc=StringVar() Subject=StringVar() Attch=StringVar() lblFrom=Label(m,text="From:",bg='#FFC9A5').place(x=20,y=60) txtFrom=Entry(m,width=80,textvariable=From).place(x=90,y=60) lblTo=Label(m,text="To:",bg='#FFC9A5').place(x=20,y=90) txtTo=Entry(m,width=80,textvariable=To).place(x=90,y=90) lblCc=Label(m,text="Cc/Bcc:",bg='#FFC9A5').place(x=20,y=120) txtCc=Entry(m,width=80,textvariable=Cc).place(x=90,y=120) lblSubject=Label(m,text="Subject:",bg='#FFC9A5').place(x=20,y=150) txtSubject=Entry(m,width=80,textvariable=Subject).place(x=90,y=150) lblAttch=Label(m,text="Attactment:",bg='#FFC9A5').place(x=20,y=180) txtAttch=Entry(m,width=80,textvariable=Attch).place(x=90,y=180) btnAttch=Button(m,text="Attach",fg="dark blue",width=10,command=getFile).place(x=580,y=175) lblBody=Label(m,text="Body:",bg='#FFC9A5').place(x=20,y=210) txtBody=Text(m,width=60,height=15) txtBody.place(x=90,y=210) btnSend=Button(m,text="Send",fg="dark green",width=10,command=send).place(x=90,y=480) m.configure(background='#FFC9A5') m.mainloop()
-------------------------------------------------------------------------
Ошибка:
--------------------------------------------------------------------------
send: 'ehlo [192.168.1.15]\r\n' reply: b'250-smtp.gmail.com at your service, [43.247.161.176]\r\n' reply: b'250-SIZE 35882577\r\n' reply: b'250-8BITMIME\r\n' reply: b'250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH\r\n' reply: b'250-ENHANCEDSTATUSCODES\r\n' reply: b'250-PIPELINING\r\n' reply: b'250-CHUNKING\r\n' reply: b'250 SMTPUTF8\r\n' reply: retcode (250); Msg: b'smtp.gmail.com at your service, [43.247.161.176]\nSIZE 35882577\n8BITMIME\nAUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH\nENHANCEDSTATUSCODES\nPIPELINING\nCHUNKING\nSMTPUTF8' send: 'AUTH PLAIN AGFrYXNocGF0ZWw5MDBAZ21haWwuY29tAA==\r\n' reply: b'535-5.7.8 Username and Password not accepted. Learn more at\r\n' reply: b'535 5.7.8 https://support.google.com/mail/answer/14257 ir4sm26338302pbb.93 - gsmtp\r\n' reply: retcode (535); Msg: b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8 https://support.google.com/mail/answer/14257 ir4sm26338302pbb.93 - gsmtp' send: 'YWthc2hwYXRlbDkwMEBnbWFpbC5jb20=\r\n' reply: b'502 5.5.1 Unrecognized command. ir4sm26338302pbb.93 - gsmtp\r\n' reply: retcode (502); Msg: b'5.5.1 Unrecognized command. ir4sm26338302pbb.93 - gsmtp' send: 'quit\r\n' reply: b'221 2.0.0 closing connection ir4sm26338302pbb.93 - gsmtp\r\n' reply: retcode (221); Msg: b'2.0.0 closing connection ir4sm26338302pbb.93 - gsmtp'
Richard MacCutchan
Вы должны использовать правильные значения, зарегистрированные в gmail.
A94
Я использовал правильные значения, зарегистрированные в gmail