django-celery-email
An async Django email backend using celery
What it is and what it does
django-celery-email is a Django email backend that offloads message sending to Celery workers, preventing email operations from blocking HTTP request handling. Instead of sending mail synchronously during request processing, it queues the work and lets background Celery tasks handle delivery. The package wraps Django's standard email API, so existing code using `django.core.mail` continues to work unchanged—you simply swap the backend and add configuration.
The package sends mass emails in configurable chunks (default 10 per task) and supports all Django email features including attachments, HTML content, and custom MIME types. It can use any underlying email backend (SMTP, SendGrid, etc.) and exposes Celery task configuration through Django settings. Because the repository is archived with no updates since 2019, it is no longer actively maintained, and compatibility with recent Django or Celery versions is uncertain.
Use it for:
- Prevent email sending from blocking web requests in Django applications handling user signups, password resets, or notifications.
- Scale email delivery across multiple Celery workers to handle high-volume transactional mail without overwhelming a single process.
- Batch email operations into configurable chunk sizes to respect rate limits imposed by email service providers.
- Track email delivery status asynchronously by enabling Celery result backends and checking AsyncResult objects.
- Integrate email sending into existing Celery task pipelines alongside other background work.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Routes Django email sending through Celery task queues for asynchronous, out-of-band message delivery instead of blocking the request.
Yes, if your Django project already uses Celery and you need async email delivery—the package is stable and has low install friction. However, proceed with caution: the repository is archived and unmaintained since 2019, so compatibility with modern Django (4.0+) and Celery (5.x+) is unverified. Test thoroughly in your environment before deploying to production, and consider monitoring for security or compatibility issues.
Install
django-celery-email on PyPI
pip
pip install django-celery-emailuv
uv add django-celery-emailpoetry
poetry add django-celery-emailInstalling django-celery-email
Before you install
Low friction installation with three straightforward runtime dependencies. However, the repository is archived and the last release was in 2019; no active maintenance or updates since then.
License in practice
BSD license is permissive, allowing commercial and private use with minimal restrictions—suitable for most projects.
Quickstart
pip install django-celery-email
# In Django settings.py:
INSTALLED_APPS += ('djcelery_email',)
EMAIL_BACKEND = 'djcelery_email.backends.CeleryEmailBackend'
# Then send email normally:
from django.core import mail
mail.send_mass_mail(emails)
Requires a working Celery installation and broker (Redis, RabbitMQ, etc.) configured alongside Django; email sending will not work without both.
Verify before relying
- Whether the package remains compatible with Django versions released after 2019 or current Celery 5.x+ releases.
- Whether the archived repository will accept security patches or bug fixes if issues arise.
- Current real-world usage patterns and whether active forks or maintained alternatives exist.
Package facts
| License | BSD (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — django, celery, django-appconf |
| Maintenance | abandoned — 2,438 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 233,530/month — #9,039 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_celery_email-3.0.0-py2.py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
django-naomidjango-naomi is a Django email backend that…
permissive · top 15,000 on PyPI
django-post_officeDjango Post Office queues and sends emails…
permissive · top 15,000 on PyPI
django-sesA Django email backend that routes outgoing…
permissive · top 5,000 on PyPI
celery-batchesCelery Batches provides a Task class that…
permissive · top 15,000 on PyPI
celeryCelery is a distributed task queue that lets…
permissive · top 1,000 on PyPI
dj-email-urlConfigures Django email backends from…
permissive · top 15,000 on PyPI
dvc-taskdvc-task queues and runs background jobs from…
permissive · top 5,000 on PyPI
celery-progressProvides drop-in progress bars for Django views…
permissive · top 15,000 on PyPI
django-celery-beatStores Celery periodic task schedules in a…
permissive · top 5,000 on PyPI
celery_oncePrevents duplicate execution and queuing of…
permissive · top 15,000 on PyPI