我在 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')
我在谷歌上搜索了这个问题的解决方案,但它说你需要禁用一个 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')
请帮帮我
因为截止日期是 2022 年 5 月 30 日,您现在不能使用安全性较低的应用程序。
使用应用程序密码通过 Flask 发送 Gmail 的另一种方法
在生成应用程序密码之前,您的谷歌帐户必须启用 2FA。
如果启用了 2FA,那么您可以跳转到管理帐户中的安全部分,在那里您可以看到 APP 密码部分。
生成APP密码也可以阅读-> here
下面的代码我试过并且有效
我已经使用了 python 另一个依赖
pip install Flask-Mail
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)