django-anymail-history

anymail-history - Email History (database storage) for Django Anymail

CI tests codecov Documentation MIT License

Keep history of all emails sent by Django Anymail

Introduction

anymail-history implements database storage for Django Anymail.

Resources

Features

Requirements

How to

  1. Install Anymail

  2. Install
     $ pip install "django-anymail-history"
    
  3. Register anymail_history in your list of Django applications:
     INSTALLED_APPS = [
         # ...
         "anymail",
         "anymail_history",
         # ...
     ]
    
  4. Then migrate the app to create the database table manage.py migrate

  5. 🎉 Voila!

Settings

You can add settings to your project’s settings.py either as a single ANYMAIL dict, or by breaking out individual settings prefixed with ANYMAIL_. So this settings dict:

ANYMAIL = {
    "STORE_HTML": True,
}

…is equivalent to these individual settings:

ANYMAIL_STORE_HTML = True

Available settings

Contribute

Principles

Coding style

We use pre-commit to run code quality tools. Install pre-commit however you like (e.g. pip install pre-commit with your system python) then set up pre-commit to run every time you commit with:

> pre-commit install

You can then run all tools:

> pre-commit run --all-files

It includes the following:

There are default config files for the linting and mypy.

Tests

Tests package

The package tests themselves are outside of the main library code, in a package that is itself a Django app (it contains models, settings, and any other artifacts required to run the tests (e.g. urls).) Where appropriate, this test app may be runnable as a Django project - so that developers can spin up the test app and see what admin screens look like, test migrations, etc.

Running tests

The tests themselves use pytest as the test runner. If you have installed the poetry evironment, you can run them thus:

$ poetry run pytest

or

$ poetry shell
(anymail-history-py3.10) $ pytest

CI