m0_69693998 2024-06-18 14:03 采纳率: 45.2%
浏览 2
已结题

在进行flask项目发送邮件的地方出现了这种错误

在进行flask项目发送邮件的地方出现了这种错误,是什么问题呢

img

img

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-18 14:03
    关注

    引自免费微信小程序:皆我百晓生

    从你提供的信息来看,错误信息明确指出是 SSL 握手失败的问题:[SSL: WRONG_VERSION_NUMBER] wrong version number。这通常意味着客户端(在本例中是 Flask 应用)与邮件服务器(SMTP 服务器)之间的 SSL/TLS 版本不兼容。

    解决方案

    SMTP 服务器可能不支持客户端尝试使用的 SSL/TLS 版本。QQ 邮箱的 SMTP 服务器通常要求 TLS 1.2 或更高版本。因此,你需要确保你的 Flask 应用在连接到 SMTP 服务器时使用正确的 SSL/TLS 版本。

    修改 config.py

    在你的配置文件 config.py 中,找到邮件配置的部分,将 MAIL_USE_SSL 设置为 False,并设置 MAIL_USE_TLSTrue。同时,你可能需要调整 MAIL_PORT 到一个 TLS 端口,通常是 587。

    # 邮件配置
    MAIL_SERVER = 'smtp.qq.com'
    MAIL_PORT = 587
    MAIL_USE_SSL = False
    MAIL_USE_TLS = True
    MAIL_USERNAME = 'your_email_address'
    MAIL_PASSWORD = 'your_email_password'
    MAIL_DEFAULT_SENDER = 'your_email_address'
    

    发送邮件代码

    确保在发送邮件时使用了正确的配置。下面是一个使用 Flask-Mail 的示例代码,它应该在更新配置后工作:

    from flask import Flask
    from flask_mail import Mail, Message
    
    app = Flask(__name__)
    app.config.from_object('config')
    mail = Mail(app)
    
    @app.route('/mail/test')
    def mail_test():
        message = Message(subject='邮箱测试',
                          recipients=['2796004827@qq.com'],
                          body='这是一条测试邮件')
        mail.send(message)
        return "邮件发送成功"
    

    验证 SSL/TLS 版本

    确保你的 Python 环境支持 TLS 1.2。你可以通过以下命令检查你的 OpenSSL 版本:

    openssl version
    

    如果版本过低,你可能需要升级 OpenSSL 或者更新你的 Python 环境。

    其他注意事项

    • 确保你的防火墙没有阻止对 SMTP 服务器的连接。
    • 检查是否有任何网络代理或安全软件阻止了 SSL/TLS 连接。
    • 如果你在使用虚拟环境,确保 Flask-Mail 和其他依赖项都在虚拟环境中安装。

    按照以上步骤操作,你应该能解决 SSL 握手失败的问题。如果仍然遇到困难,进一步检查网络连接状态和服务器的 SSL/TLS 配置可能是必要的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月26日
  • 已采纳回答 6月18日
  • 创建了问题 6月18日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见