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
File details
Details for the file fluentcms-emailtemplates-2.0.tar.gz
.
File metadata
- Download URL: fluentcms-emailtemplates-2.0.tar.gz
- Upload date:
- Size: 27.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 635fe64ca87aa7fd61a93766cc555901e6ce06a3f66dc76a66511c2a9095549d |
|
MD5 | c33c6a3c27ef2af415cf52a5e769f416 |
|
BLAKE2b-256 | 8f65224bdb72db8dc540dab202185f5a67a8c243ff21f60c942f7880ee996401 |
File details
Details for the file fluentcms_emailtemplates-2.0-py2.py3-none-any.whl
.
File metadata
- Download URL: fluentcms_emailtemplates-2.0-py2.py3-none-any.whl
- Upload date:
- Size: 37.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | eda770cdd48178fe08d6c9d4894b1db62c2abc128455e9d6809c2390d22580d5 |
|
MD5 | 50d1b5cc8fb6c5a81c350b761c04bd1a |
|
BLAKE2b-256 | 3318faee5841508c80eea87f6a31836cff6db4fd7fae03bf4828122e3640a47a |