Skip to main content
PyCon US is happening May 14th-22nd in Pittsburgh, PA USA.  Learn more

Django module to easily send templated emails in a DRY way

Project description

Build Status Codacy Badge Coverage Status BCH compliance Pypi

Django module to easily send templated emails in a DRY way using classes, just like Class Based Views.

Table of contents:

How to install

To install the app run :

pip install django-cbmail

or add it to the list of requirements of your project.

Example usage

Create a mails.py and use the BaseMail class to define your email like:

from cbmail.base import BaseMail

class ExampleEmail(BaseMail):
    """ """
    template_name = "myapp/mails/myemail.html"
    subject = "Example subject of email"

And send it using:

ExampleEmail().send(['example@example.com'])

Where ['example@example.com'] is a list of emails of destination or a object with get_mailing_list method defined

Settings reference

To give support to this app we need to declare de following django settings:

DEFAULT_FROM_EMAIL = "example@example.com"

CBMAIL = {
    'DEFAULT_REPLY_TO': "examplereplyto@example.com",
    'DEFAULT_SUJECT': "Example subject",
    'BASE_URL': "https://domain.com",
    'EXTRA_DATA': {},
    'WHITELIST': []
}
  • DEFAULT_FROM_EMAIL: Default setting of Django that defines the from email

  • DEFAULT_REPLY_TO: Default reply to be used on emails

  • DEFAULT_SUJECT: Default subject to be used on emails

  • WHITELIST: List of valid emails to send to

  • BASE_URL: The base url of your website

  • EXTRA_DATA: Any extra data intended to be used on all emails (This is injected on context of template)

License

MIT license, see the LICENSE file. You can use obfuscator in open source projects and commercial products.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page