You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask实现注册发确认邮件功能时报错No module named 'flask_mail'

报错原因及解决方案

1. 解决ModuleNotFoundError: No module named 'flask_mail'

这个报错是因为你的Python环境没有安装Flask-Mail依赖包,在对应环境下执行以下命令安装即可:

pip install flask-mail

如果使用了虚拟环境,请先激活虚拟环境再执行安装命令。

2. 代码其他问题修复(修复后可解决Internal Server Error)

安装完依赖后运行还会触发500错误,是因为代码存在几处语法和逻辑错误,按以下修改即可:

  • MAIL_SERVER配置缺失引号
    原代码中smtp.gmail.com是字符串类型,未加引号会被识别为未定义变量,修改为:
    app.config["MAIL_SERVER"] = "smtp.gmail.com"
    
  • 未定义name变量就直接调用
    你在写入REGISTRANTS字典和插入数据库时都用到了name变量,但代码中没有从表单获取该字段的逻辑,需要补充:
    首先在获取email的代码下方新增行,获取表单中的name参数:
    name = request.form.get("name")
    
    同时补充对应的校验逻辑,避免参数为空:
    if not name:
        return render_template("failure.html", message="姓名未填写")
    
  • 路由跳转写法不规范
    原代码return redirect("success")建议修改为更规范的写法,避免路由匹配异常:
    return redirect(url_for("success"))
    
    注意需要先在flask的导入语句中新增url_for:
    from flask import Flask, redirect, render_template, request, url_for
    

额外注意事项

你代码中调用的os.getenv读取的三个邮箱配置参数,需要确保运行项目的系统环境中已经正确配置了对应的值,否则会出现邮箱发件失败的问题。如果使用G邮箱发件,需要提前开启账号两步验证,并生成应用专用密码作为MAIL_PASSWORD的值,避免谷歌拦截发件请求。

内容的提问来源于stack exchange,提问作者Nisarg Kudgunti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:57:00