尝试使用 Flask 和 Gmail 发送电子邮件时出错
Posted
技术标签:
【中文标题】尝试使用 Flask 和 Gmail 发送电子邮件时出错【英文标题】:Error when trying to send emails with Flask and Gmail 【发布时间】:2021-08-18 07:25:27 【问题描述】:我正在尝试使用 Gmail 从我的烧瓶应用程序发送电子邮件,但收到以下错误消息: smtplib.SMTPSenderRefused: (530, b'5.7.0 Authentication required.
我已经查看了所有相关问题,以下是我尝试过的解决方案:
-
开启“不太安全的应用访问”
尝试使用“应用密码”登录
我已经将我的电子邮件凭据保存为环境变量
这是我的代码:
from flask import Flask, render_template, redirect, request
from flask_mail import Mail, Message
app = Flask(__name__)
app.config["MAIL_SERVER"] = "smtp.gmail.com"
app.config["MAIL_PORT"] = 587
app.config["MAIL_USE_TLS"] = True
app.config["MAIL_USER"] = os.getenv("MAIL_USERNAME")
app.config["MAIL_DEFAULT_SENDER"] = os.getenv("MAIL_USERNAME")
app.config["MAIL_PASSWORD"] = os.getenv("MAIL_PASSWORD")
mail = Mail(app)
@app.route("/", methods=["GET", "POST"])
def index():
if request.method == "POST":
recipient = request.form.get("email")
msg = Message("Welcome on board!", recipients=[recipient])
mail.send(msg)
elif request.method == "GET":
return render_template("greetings.html")
【问题讨论】:
【参考方案1】:对于谷歌 smtp 试试:
MAIL_PORT = 465
MAIL_USE_SSL = True
【讨论】:
我之前已经尝试过了。它会产生相同的错误 根据您的 google 帐户的安全设置,您可能需要生成和使用app password 而不是帐户密码。 我没有使用两步验证,所以我无法生成应用密码。虽然,我试过这样做,但没有任何区别。以上是关于尝试使用 Flask 和 Gmail 发送电子邮件时出错的主要内容,如果未能解决你的问题,请参考以下文章
Flask-Mail 未使用 Gmail 和应用密码进行身份验证