尝试使用 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

配置 Flask-Mail 以使用 GMail

Flask-Mail 尝试连接到 Gmail 时超时

Flask-Mail 未使用 Gmail 和应用密码进行身份验证

Flask Mail 不适用于 Gmail 帐户和 AWS 实例

Flask 邮件仅发送到特定域