Skip to main content

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.

PyPI Python License: MPL-2.0

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_CHANNELS is 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

Part of Entirius

This module runs inside the Entirius backend service (Volkanos); the modules that own a flow call its email services.

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)

Source distribution for entirius-django-email 4.2.0
File Size Uploaded
entirius_django_email-4.2.0.tar.gz 128.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for entirius-django-email 4.2.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

4.2.0 This release

2 release files

4.1.0

2 release files

4.0.1

2 release files

4.0.0

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