【发布时间】:2013-10-18 20:47:10
【问题描述】:
当他/她第一次登录(fb auth)到我们的烧瓶应用程序时,我正在尝试向用户发送一封欢迎电子邮件。
所以我正在考虑将 flask-mail 用于电子邮件框架和 celery(用于 rabbitmq 的 python 客户端)作为任务队列。
所以我有一个简单的电子邮件框架:
from flask.ext.mail import Message
from app import mail
def send_email(subject, sender, recipients, text_body, html_body):
msg = Message(subject, sender = sender, recipients = recipients)
msg.body = text_body
msg.html = html_body
mail.send(msg)
我一直在阅读 celery 文档 - 但我不确定如何创建发送电子邮件所需的任务。我知道 Flask-mail 需要 Flask 应用程序上下文才能正常工作。然后我也需要 celery 的 celery 实例。那应该是烧瓶应用程序的一部分吗?简而言之,我正在寻找一些指导。在此先感谢您的帮助。
【问题讨论】:
-
您可能需要检查The Flask Mega-Tutorial, Part XI: Email Support 的Python 中的异步调用 部分。
-
或者,查看 exim。它是一个用作邮件服务器的软件。您可以将其配置为接受邮件,然后将其异步放入队列并将其发送到另一个真正的邮件服务器。否则,您通常会询问如何创建 celery 任务来发送电子邮件。你已经描述了一些很有可能的事情。 Celery 任务可以导入 Flask 应用程序并创建上下文。您在这里应该没有问题。
标签: python asynchronous flask rabbitmq celery