Skip to content

DataShades/ckanext-mailcraft

Repository files navigation

Tests

ckanext-mailcraft

The ckanext-mailcraft adds powerful email management features to CKAN, making it easier to style, track, and control outgoing messages.

Features

  • Flexible Mailer – a custom mailer that can be easily extended to fit your needs
  • Pre-styled Templates – an example email template you can customize to match your branding
  • Email Logging – configurable option to save outgoing emails and view them in the dashboard
  • Email Control – configurable option to temporarily stop outgoing messages when needed
  • Redirection – configurable option to reroute all outgoing emails to one or more specified addresses

To enable the extension, add mailcraft to the ckan.plugins setting in your CKAN. If you want to enable the dashboard you should also add tables mailcraft_dashboard to the ckan.plugins setting.

Usage

To use a mailer, you just have to import it and initialize the mailer.

from ckanext.mailcraft.utils import get_mailer

mailer = get_mailer()

mailer.mail_recipients(
    subject="Hello world",
    recipients=["[email protected]"],
    body="Hello world",
    body_html=tk.render(
        "mailcraft/emails/test.html",
        extra_vars={"site_url": mailer.site_url, "site_title": mailer.site_title},
    ),
)

Important

If you're using environment variables to configure the SMTP server, you must create the mailer instance within a method or function scope; otherwise, the mailer will take the config options from the CKAN config file.

Dashboard


To access the dashboard, first ensure that the tables mailcraft_dashboard plugins are enabled in your CKAN configuration. Then you'll have a button at the top right of the CKAN interface that will take you to the Mailcraft dashboard.

The tables plugin is required to render the dashboard table.

dashboard button

The dashboard provides an overview of all outgoing emails, including their status (sent, failed, etc.), recipients, and timestamps. You can filter and search through the emails to find specific ones.

dashboard

The ckanext.mailcraft.save_emails config option must be set to true to save outgoing emails and view them in the dashboard. You can also press the View button to see the full content of each email.

mail body

Requirements

Compatibility with core CKAN versions:

CKAN version Compatible?
2.9 and earlier no
2.10+ yes

Installation

Use PyPI to install the extension with pip. Or check the Developer installation section.

pip install ckanext-mailcraft

Config settings

Check the config_declaration.yaml file to see all available config settings.

Developer installation

To install ckanext-mailcraft for development, activate your CKAN virtualenv and do:

git clone https://github.com/DataShades/ckanext-mailcraft.git
cd ckanext-mailcraft
python setup.py develop
pip install -r dev-requirements.txt

Build CSS

Run this command from the theme folder.

npx sass styles.scss:./../assets/css/style.css -s compressed --no-source-map

Tests

To run the tests, do:

pytest --ckan-ini=test.ini

License

AGPL

About

Custom extandable mailer for CKAN

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •