Python SMTPAuthenticationError

Python SMTPAuthenticationError,python,smtp-auth,Python,Smtp Auth,直到昨天,我还没有用python发送电子邮件的问题,现在由于某种原因,我得到了以下错误 Traceback (most recent call last): File "main.py", line 20, in <module> mail(name) File "/home/runner/mail.py", line 26, in mail smtpserver.login(gmail_user, gmail_password) File "/usr/l

直到昨天,我还没有用python发送电子邮件的问题,现在由于某种原因,我得到了以下错误

Traceback (most recent call last):
  File "main.py", line 20, in <module>
    mail(name)
  File "/home/runner/mail.py", line 26, in mail
    smtpserver.login(gmail_user, gmail_password)
  File "/usr/local/lib/python3.7/smtplib.py", line 730, in login
    raise last_exception
  File "/usr/local/lib/python3.7/smtplib.py", line 721, in login
    initial_response_ok=initial_response_ok)
  File "/usr/local/lib/python3.7/smtplib.py", line 642, in auth
    raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8  https://support.google.com/mail/?p=BadCredentials p17sm967082ils.71 - gsmtp')

我尝试过在gmail中更改不太安全的应用程序,启用IMAP,并更改电子邮件帐户的密码。到目前为止,这个问题还没有解决。任何帮助都将不胜感激

谷歌增加了其安全策略,我邀请您阅读以下部分中的链接:不太安全的应用程序&您的谷歌帐户,并像下面的“不太安全的应用程序访问”一样打开该链接


稍后允许访问不安全的应用程序:是

这是我的代码,您需要将smtp.gmail.com端口设置为587

在sendMail,我们收到了警报通知,有人进入了房间,所附的图片是身体,如果需要,我们还有附件[/home/pi/webcam.jpg]

代码:


我尝试过切换,但仍然不起作用。但您确定您使用的是相同的帐户登录吗?是否使用某些IDE来执行您的脚本?我正在使用PythonyWhere每天运行我的脚本,但一直使用repl来尝试解决此问题。我最初在repl中对整个过程进行了编码,直到昨天我才注意到它停止了工作。您可以添加所有代码吗。。使用导入..发送邮件时,端口号是smtplib.SMTP\u SSL的正确端口。我最终通过更改gmail帐户的密码解决了这个问题。
import smtplib

def mail(name):
    gmail_user = 'email@gmail.com'
    gmail_password = 'password'

    emaillist = ['email@email.com']

    for email in emaillist:
        sent_from = gmail_user
        to = email
        subject = 'Subject'

        body = "Body"

        email_text = '''\
        From: %s
        To: %s
        Subject: %s

        %s
        '''%(sent_from, to, subject, body)

        try:
            server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
            server.ehlo()
            server.login(gmail_user, gmail_password)
            server.sendmail(sent_from, to, body)
            server.close()

            print('Email sent!')
        except:
            print('Oops!')
#!/usr/bin/env python
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import os

USERNAME = "___YOUR SMTP EMAIL HERE___"
PASSWORD = "__YOUR SMTP PASSWORD HERE___"

def sendMail(to, subject, text, files=[]):
    assert type(to)==list
    assert type(files)==list

    msg = MIMEMultipart()
    msg['From'] = USERNAME
    msg['To'] = COMMASPACE.join(to)
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject

    msg.attach( MIMEText(text) )

    for file in files:
        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)

    server = smtplib.SMTP('smtp.gmail.com:587')
    server.ehlo_or_helo_if_needed()
    server.starttls()
    server.ehlo_or_helo_if_needed()
    server.login(USERNAME,PASSWORD)
    server.sendmail(USERNAME, to, msg.as_string())
    server.quit()

sendMail( ["___EMAIL TO RECEIVE THE MESSAGE__"],
        "Alarm notification",
        "Someone has entered the room, picture attached",
        ["/home/pi/webcam.jpg"] )