Skip to content
This repository has been archived by the owner on Dec 7, 2023. It is now read-only.

Django module to easily send templated emails in a DRY way

License

Notifications You must be signed in to change notification settings

dipcode-software/django-cbmail

Repository files navigation

Django CBMail

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.