flask中协程发送邮件问题?

写了一个获取邮箱验证码的视图函数,因为邮箱发送是阻塞操作,我准备使用协程来完成这个操作,但是我都写好了后却出现了这个报错是怎么回事?

img

报错如下

img

很奇怪的就是,协程报错之后邮件是以同步形式发送的,相当于报错了也能发送邮件验证码。用的是flask

以下为代码

async def task_email(email2,verify_code):
    task_list = []
    message = Message(subject='验证码',recipients=[email2],body=verify_code,sender=('秋零','work1145141919@outlook.com'))
    task = asyncio.create_task(mail.send(message))
    task_list.append(task)
    await asyncio.gather(*task_list)

# 验证码模块获取视图函数
@bp.post('/get_verifycode')
def get_verifycode():
    data = request.get_json()
    email1 = decrypt_AES(data['email'])
    email2 = remove_padding(email1)

    email_data = registe_email(email=email2)
    if email_data.validate():        
        verify_code = secrets.token_urlsafe(4)
        # print(verify_code)
        # message = Message(subject='验证码',recipients=[email2],body=verify_code,sender=('秋零','work1145141919@outlook.com'))
        # mail.send(message)
        
        # asyncio.run(task_email(email2,verify_code))
        loop = asyncio.new_event_loop()
        loop.run_until_complete(task_email(email2,verify_code))

        code_task = verify_codetable(code=verify_code)
        db.session.add(code_task)
        db.session.commit()

        return jsonify({'code': 200, 'message': '验证码发送成功', 'data': 'null'})
    else:
        return jsonify({'code': 200, 'message': f'{email_data.errors}', 'data': 'null'})

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^