Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 4.3.1 instead.
Reason given by maintainers: MIME attachments (such as inline images) crash on Django 6.0+, and tasks queued before switching to MAILERS are lost. Fixed in 4.3.1.

django-celery-email-reboot - A Celery-backed Django Email Backend

https://img.shields.io/pypi/v/django-celery-email-reboot.svg

A Django email backend that uses a Celery queue for out-of-band sending of the messages.

This is a fork of django_celery_email. As this package has gone unmaintained for some time, we have decided to maintain the package in order to maintain compatibility with future Django versions, starting with Django 4.x, 5.x and 6.x.

This new package is available in pypi under the name django-celery-email-reboot: https://pypi.org/project/django-celery-email-reboot/

Using django-celery-email-reboot

Install from Pypi using:

pip install django-celery-email-reboot

If you are switching from the original django-celery-email, uninstall it first. Both packages install the same djcelery_email module, so uninstalling django-celery-email afterwards also deletes the files of this package:

pip uninstall django-celery-email
pip install django-celery-email-reboot

If both packages are installed, a system check warning (djcelery_email.W001) is shown.

To enable django-celery-email-reboot for your project you need to add djcelery_email to INSTALLED_APPS:

INSTALLED_APPS += ("djcelery_email",)

You must then set django-celery-email as your EMAIL_BACKEND:

EMAIL_BACKEND = 'djcelery_email.backends.CeleryEmailBackend'

By default django-celery-email will use Django’s builtin SMTP email backend for the actual sending of the mail. If you’d like to use another backend, you may set it in CELERY_EMAIL_BACKEND just like you would normally have set EMAIL_BACKEND before you were using Celery. In fact, the normal installation procedure will most likely be to get your email working using only Django, then change EMAIL_BACKEND to CELERY_EMAIL_BACKEND, and then add the new EMAIL_BACKEND setting from above.

Using MAILERS (Django 6.1+)

Django 6.1 replaces the EMAIL_BACKEND setting with MAILERS. To use django-celery-email-reboot with MAILERS, set CeleryEmailBackend as the BACKEND of a mailer and set the using option to the alias of the mailer that should send the email:

MAILERS = {
    "default": {
        "BACKEND": "djcelery_email.backends.CeleryEmailBackend",
        "OPTIONS": {
            "using": "smtp",
        },
    },
    "smtp": {
        "BACKEND": "django.core.mail.backends.smtp.EmailBackend",
        "OPTIONS": {
            "host": "smtp.example.com",
        },
    },
}

When MAILERS is used, the CELERY_EMAIL_BACKEND setting is ignored. The email is sent from the Celery worker through the mailer set in using, so the workers need the same MAILERS setting. The other CELERY_EMAIL_* settings described below still apply.

Mass email are sent in chunks of size CELERY_EMAIL_CHUNK_SIZE (defaults to 10).

If you need to set any of the settings (attributes) you’d normally be able to set on a Celery Task class had you written it yourself, you may specify them in a dict in the CELERY_EMAIL_TASK_CONFIG setting:

CELERY_EMAIL_TASK_CONFIG = {
    'queue' : 'email',
    'rate_limit' : '50/m',  # * CELERY_EMAIL_CHUNK_SIZE (default: 10)
    ...
}

There are some default settings. Unless you specify otherwise, the equivalent of the following settings will apply:

CELERY_EMAIL_TASK_CONFIG = {
    'name': 'djcelery_email_send',
    'ignore_result': True,
}

After this setup is complete, and you have a working Celery install, sending email will work exactly like it did before, except that the sending will be handled by your Celery workers:

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 will be a list of celery AsyncResult objects that you may ignore, or use to check the status of the email delivery task, or even wait for it to complete if want. You have to enable a result backend and set ignore_result to False in CELERY_EMAIL_TASK_CONFIG if you want to use these. You should also set CELERY_EMAIL_CHUNK_SIZE = 1 in settings if you are concerned about task status and results.

See the Celery docs for more info.

len(results) will be the number of emails you attempted to send divided by CELERY_EMAIL_CHUNK_SIZE, and is in no way a reflection on the success or failure of their delivery.

Metadata

Release files for django-celery-email-reboot 4.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-celery-email-reboot 4.3.0
File Size Uploaded
django_celery_email_reboot-4.3.0.tar.gz 14.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-celery-email-reboot 4.3.0
File Interpreter ABI Platform
django_celery_email_reboot-4.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.8 kB

Release files / django_celery_email_reboot-4.3.0.tar.gz

Download URL django_celery_email_reboot-4.3.0.tar.gz
Size 14.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f764b46c7d921681955df9b23081e2a308ea7a0add19db66666c428deae5c8e9
BLAKE2b-256 checksum
How to use checksums
d645bd5d24378c84666dcbe0b9e9ae1ec90c95d5e9fc021690cc03efb7fdd801
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release files / django_celery_email_reboot-4.3.0-py3-none-any.whl

Download URL django_celery_email_reboot-4.3.0-py3-none-any.whl
Size 10.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf6be5fdf1443ae8d91c2f6f91f4e6da44617ef520c735176be04c6114580e4d
BLAKE2b-256 checksum
How to use checksums
3f54f9e86fb539099c50e0d1f403367eb109fa9b9aac8d191dab79d4880f1e4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

4.3.1

2 release files

This release

4.3.0 This release

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.0

2 release files

4.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page