Creating e-mail messages, with multiple layouts and multilingual content.
Project description
fluentcms-emailtemplates
An email template system, that uses django-fluent-contents blocks to define the e-mail templates.
Features:
Multilingual content.
Multisite support.
Custom layouts (=Django templates).
Custom context variables
Installation
First install the module, preferably in a virtual environment. It can be installed from PyPI:
pip install fluentcms-emailtemplates
First make sure the project is configured for django-fluent-contents.
Then add the following settings:
INSTALLED_APPS += (
'fluentcms_emailtemplates',
'fluentcms_emailtemplates.plugins.emailtext',
)
FLUENTCMS_EMAILTEMPLATES_PLUGINS = (
'EmailTextPlugin',
)
The database tables can be created afterwards:
./manage.py migrate
Configuration
The following settings are defined by default:
FLUENTCMS_EMAILTEMPLATES_LAYOUTS = (
# A layout points to a template named:
# fluentcms_emailtemplates/emails/{slug}/{layout}.html
# fluentcms_emailtemplates/emails/{layout}.html
('default', _("Default")),
)
# Possible plugins to use in the email template.
# By default, that is FLUENT_CONTENTS_PLACEHOLDER_CONFIG['email_templates']
FLUENTCMS_EMAILTEMPLATES_PLUGINS = (
'EmailTextPlugin',
)
# Add extras context data for an e-mail preview.
FLUENTCMS_EMAILTEMPLATES_PREVIEW_CONTEXT = {}
# Optionally allow developers to share email templates between all sites in a multisite setup.
FLUENTCMS_EMAILTEMPLATES_ENABLE_CROSS_SITE = False
# Enable multisite support by default
FLUENTCMS_EMAILTEMPLATES_FILTER_SITE_ID = True
Usage
Create email templates in the admin. Use the following code to create an email:
from email.utils import formataddr
from fluentcms_emailtemplates.models import *
template = EmailTemplate.objects.get_for_slug('order-confirmation')
email = template.get_email_message(
base_url='http://example.org/',
context={
'order_number': "123-xy"
},
to=[
formataddr(('You', 'you@example.org')),
],
)
email.send()
Tip: when creating a separate template for the plain-text email, start the template with {% autoescape off %}. This avoids creating HTML entities inside the plain-text email.
Contributing
If you like this module, forked it, or would like to improve it, please let us know! Pull requests are welcome too. :-)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for fluentcms-emailtemplates-2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 635fe64ca87aa7fd61a93766cc555901e6ce06a3f66dc76a66511c2a9095549d |
|
MD5 | c33c6a3c27ef2af415cf52a5e769f416 |
|
BLAKE2b-256 | 8f65224bdb72db8dc540dab202185f5a67a8c243ff21f60c942f7880ee996401 |
Hashes for fluentcms_emailtemplates-2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eda770cdd48178fe08d6c9d4894b1db62c2abc128455e9d6809c2390d22580d5 |
|
MD5 | 50d1b5cc8fb6c5a81c350b761c04bd1a |
|
BLAKE2b-256 | 3318faee5841508c80eea87f6a31836cff6db4fd7fae03bf4828122e3640a47a |