Django module to easily send templated emails in a DRY way using classes, just like Class Based Views.
- Table of contents:
To install the app run :
pip install django-cbmail
or add it to the list of requirements of your project.
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
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)
MIT license, see the LICENSE file. You can use obfuscator in open source projects and commercial products.