entirius-django-email
A Django module for transactional email in Entirius, the open-source modular ecommerce platform: branded templates per sales channel and language. It ships ready-made email services for account, checkout, loyalty, returns, newsletter and contact-form flows, and an admin API for editing branding and templates.
What it does
- Sends transactional emails through ready-made services, one per flow (new account, password reset, virtual product, voucher, return confirmation, newsletter signup, booking and contact-form messages).
- Stores branding per sales channel (colors, fonts, sender) with per-language overrides.
- Resolves the email language with a fallback chain: requested language, then the channel default.
- Lets a project override header and footer templates without forking the module (see
__email_brand.example/). - Routes mail through per-channel SMTP settings when
EMAIL_SMTP_CONFIGURATION_CHANNELSis set. - Exposes an admin API under
api/email/v2/admin/for channels, language configs and templates.
Installation
uv add entirius-django-email
pip install entirius-django-email
INSTALLED_APPS = [
...
"django_utils",
"django_regional",
"django_email",
]
# urls.py
urlpatterns = [
path("", include("django_email.urls")),
]
Optional settings: AVAILABLE_LANGUAGES, EMAIL_DEFAULT_LANGUAGE, DEFAULT_FROM_EMAIL, EMAIL_ADMIN_API_ENABLED,
EMAIL_SMTP_CONFIGURATION_CHANNELS; reference with defaults in
https://github.com/entirius/entirius-django-email/blob/develop/docs/configuration.md.
Quick start
from django_email.service.accounts.new_account import NewAccountEmail
# channel_idx names an existing django_email Channel row
NewAccountEmail(language="en", channel_idx="default").send(
email=["customer@example.com"],
username="Ada",
confirmation_link="https://shop.example.com/confirm/abc",
)
Requirements
- Python 3.11 or newer, Django 4.0 or newer.
- Django REST Framework,
djangorestframework-simplejwt,pydantic,drf-spectacular(admin API). - An SMTP server reachable through the Django email backend.
- Entirius packages pulled in:
entirius-django-utils,entirius-django-regional,entirius-py-process-logger.
Documentation
- Module docs: https://github.com/entirius/entirius-django-email/tree/develop/docs
- Entirius documentation: https://docs.entirius.com/
- Changelog: https://github.com/entirius/entirius-django-email/blob/develop/CHANGELOG.md
Part of Entirius
This module runs inside the Entirius backend service (Volkanos); the modules that own a flow call its email services.
- Backend service: https://github.com/entirius/entirius-service-volkanos
- Docker harness: https://github.com/entirius/entirius-zeno
- Sibling modules: https://github.com/entirius/entirius-django-accounts, https://github.com/entirius/entirius-django-regional, https://github.com/entirius/entirius-django-utils
Development
make install # sync dependencies (uv)
make check # lint + format check (ruff)
make test # test suite (pytest + pytest-django)
Development and agent instructions: https://github.com/entirius/entirius-django-email/blob/develop/AGENTS.md
License
Mozilla Public License 2.0 (MPL-2.0) — see https://github.com/entirius/entirius-django-email/blob/develop/LICENSE.
Metadata
Release files for entirius-django-email 4.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| entirius_django_email-4.2.0.tar.gz | 128.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| entirius_django_email-4.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 259.7 kB
Release files / entirius_django_email-4.2.0.tar.gz
| Download URL | entirius_django_email-4.2.0.tar.gz |
|---|---|
| Size | 128.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9a5594ff57529dac33166914ee4af99f6705d4aca98d5bc8fdbe54ef57fc4f30
|
|
BLAKE2b-256 checksum How to use checksums |
01e31acc7262c99aa471af53769c679f2cc815782f4d670793a7bd7ff8718591
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / entirius_django_email-4.2.0-py3-none-any.whl
| Download URL | entirius_django_email-4.2.0-py3-none-any.whl |
|---|---|
| Size | 131.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a6c863a79c967872ef2e795902496d8d2b506de8d9c62377767a584dd729c517
|
|
BLAKE2b-256 checksum How to use checksums |
a3e31ffbeac6ae318c19e4410181d4fef51348f46e80827b9663e2429fe3cda2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|