smtplib.SMTPAuthenticationError: (535, b'5.7.8 用户名和密码不被接受)

Dim*_*app 4 python gmail flask flask-mail

我正在 Flask 上编写一个网站,遇到了向电子邮件用户发送电子邮件时出现这样的错误的问题。

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 i1-20020ac25221000000b00478f5d3de95sm4732790lfl.120 - gsmtp')
Run Code Online (Sandbox Code Playgroud)

我在Google上搜索了该问题的解决方案,但它说你需要禁用最近GMAIL不支持的功能。也许现在有人知道如何解决这个问题?

这是我的配置连接:

app.config['MAIL_SERVER'] = 'smtp.googlemail.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = os.getenv('MAIL_USERNAME')
app.config['MAIL_PASSWORD'] = os.getenv('MAIL_PASSWORD')
Run Code Online (Sandbox Code Playgroud)

请帮帮我

pee*_*ure 11

由于您现在无法使用安全性较低的应用程序,因为截止日期是 2022 年 5 月 30 日。使用应用程序密码通过 Flask 发送 Gmail 的另一种方法

在生成 APP 密码之前,您的 google 帐户必须启用 2FA。如果启用了 2FA,那么您可以跳到管理帐户中的安全部分,在那里您可以看到应用程序密码部分。

要生成APP密码,您还可以阅读->此处

我尝试过下面的代码并且它有效

我使用了 python 的另一个依赖项

pip install Flask-Mail

Run Code Online (Sandbox Code Playgroud)
from flask import Flask
from flask_mail import Mail, Message

app = Flask(__name__)
mail= Mail(app)

app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = 'someone@gmail.com'
app.config['MAIL_PASSWORD'] = 'YOUR_APP_PASSWORD'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
mail = Mail(app)

@app.route("/")
def index():
   msg = Message('Hello', sender = 'someone@gmail.com', recipients = ['someone@gmail.com'])
   msg.body = "Hello Flask message sent from Flask-Mail"
   mail.send(msg)
   return "Sent"

if __name__ == '__main__':
   app.run(debug = True)
Run Code Online (Sandbox Code Playgroud)