django芹菜电子邮件后端。
django-celery-email-with-retr的Python项目详细描述
使用Celery队列进行带外发送的Django电子邮件后端 的消息。
此fork恢复在尝试Task.max_retries次后停止重试的重试逻辑, 其中默认值为3。
使用django芹菜电子邮件
要为项目启用django-celery-email,您需要将djcelery_email添加到 INSTALLED_APPS:
INSTALLED_APPS += ("djcelery_email",)
然后必须将django-celery-email设置为EMAIL_BACKEND:
EMAIL_BACKEND = 'djcelery_email.backends.CeleryEmailBackend'
默认情况下,django-celery-email将使用django的内置SMTP电子邮件后端 为邮件的实际发送。如果你想使用另一个后端,你 可以在CELERY_EMAIL_BACKEND中设置它,就像您通常设置的那样 EMAIL_BACKEND在你用芹菜之前。实际上,正常的安装 程序很可能是只使用django让你的电子邮件正常工作,然后 将EMAIL_BACKEND更改为CELERY_EMAIL_BACKEND,然后添加新的 EMAIL_BACKEND从上面设置。
如果需要设置任何设置(属性),通常可以在 Celery Task类如果是您自己编写的,可以在^{tt15}中指定它们$ 在CELERY_EMAIL_TASK_CONFIG设置中:
CELERY_EMAIL_TASK_CONFIG = { 'queue' : 'email', 'rate_limit' : '50/m', ... }
有一些默认设置。除非另有说明,否则 将应用以下设置:
CELERY_EMAIL_TASK_CONFIG = { 'name': 'djcelery_email_send', 'ignore_result': True, }
安装完成后,如果芹菜安装正常,请发送 电子邮件将像以前一样工作,只是发送将是 由芹菜工人负责:
from django.core import mail emails = ( ('Hey Man', "I'm The Dude! So that's what you call me.", 'dude@aol.com', ['mr@lebowski.com']), ('Dammit Walter', "Let's go bowlin'.", 'dude@aol.com', ['wsobchak@vfw.org']), ) results = mail.send_mass_mail(emails)
results将是一个芹菜AsyncResult对象列表,您可以忽略这些对象,或者使用它来检查 电子邮件传递任务的状态,如果需要,甚至等待它完成。你必须启用一个结果 后端并在CELERY_EMAIL_TASK_CONFIG中将ignore_result设置为False,如果您想使用它们的话。 有关详细信息,请参见Celery docs。
len(results)将是您尝试发送的电子邮件数,决不会反映成功或失败 他们的交货。
更改日志
1.0.3-2012.03.06
- 后端现在将传递初始化为 电子邮件发送后端。
- 感谢Fedor Tyurin的贡献。
1.0.2-2012.02.21
- 任务和后端现在接受可以在信号处理程序中使用的Kwargs。
- 任务现在从电子邮件发送后端返回结果。
- 感谢Yehonatan Daniv所做的这些更改。
1.0.1-2011.10.06
- 修正了导致任务抛出错误并报告成功的错误。
- 如果发送电子邮件后端引发异常,则任务的结果将 现在是例外。