El uso de Flask-Mail de forma asíncrona da como resultado “RuntimeError: trabajar fuera del contexto de la aplicación”

Estoy tratando de enviar algún correo de forma asíncrona (basado en el código de The Flask Mega-Tutorial, Parte XI: Soporte por correo electrónico ). Sin embargo, recibo el siguiente error acerca de trabajar fuera del contexto de una aplicación. ¿Cómo soluciono este problema?

Traceback (most recent call last): File "C:\Users\Primoz\Desktop\RecycleFlaskServer\recycleserver\helpers.py", line 17, in send_async_email mail.send(msg) File "C:\Python33\lib\site-packages\flask_mail-0.9.0-py3.3.egg\flask_mail.py", line 434, in send message.send(connection) File "C:\Python33\lib\site-packages\flask_mail-0.9.0-py3.3.egg\flask_mail.py", line 369, in send connection.send(self) File "C:\Python33\lib\site-packages\flask_mail-0.9.0-py3.3.egg\flask_mail.py", line 173, in send email_dispatched.send(message, app=current_app._get_current_object()) File "C:\Python33\lib\site-packages\werkzeug-0.9.4-py3.3.egg\werkzeug\local.py", line 297, in _get_current_object return self.__local() File "C:\Python33\lib\site-packages\flask-0.10.1-py3.3.egg\flask\globals.py", line 34, in _find_app raise RuntimeError('working outside of application context') RuntimeError: working outside of application context 
 from flask import Flask from flask.ext.mail import Mail app = Flask(__name__) app.config.from_object('recycleserver.settings') mail = Mail(app) def async(f): def wrapper(*args, **kwargs): thr = Thread(target = f, args = args, kwargs = kwargs) thr.start() return wrapper @async def send_async_email(msg): mail.send(msg) def send_simple_mail(subject, sender, to_who, text_body="", html_body=""): msg = Message(subject=subject,sender=sender, recipients=to_who) msg.body = text_body msg.html = html_body send_async_email(msg) 

El código debe ejecutarse en un contexto de aplicación. Añadir with app.app_context() :

  @async def send_async_email(msg): with app.app_context(): mail.send(msg)