templated-emails
This app abstracts the sending of emails in a way so that it is possible to switch from plain text emails to html emails, even if you are using third party apps. It does this by using a very similar mechanism as django-notifications.
Each email gets a folder. In this folder one can put:
short.txt (for the subject)
email.txt (for the plain text email)
email.html (optional, if an HTML email should also be sent)
A good practice is to put all emails in an emails/ folder within your templates folder, so it is easy to see what emails are being sent by your system.
Recipients can either be an array of emails (as strings) or users. If you pass users it will also try to find the users stored language (accounts.Account.language in pinax) and send it using it.
Sending an emails works like this:
from templated_emails.utils import send_templated_email
send_templated_email(["philipp@gidsy.com"], "emails/invite_friends", {"my_variable":"blafoo"})
or
user = User.objects.get(pk=1)
# this will try to switch to the correct language of the user
send_templated_email([user], "emails/invite_friends", {"my_variable":"blafoo"})
The system will add current_site (the Site object of the Django Project) and STATIC_URL (for linking in static content) to the context of your templates.
Language
Similar to django-notification the system will try to look for the language the user has set in his Account (but can be configured to other Models using settings.NOTIFICATION_LANGUAGE_MODULE) to server the right language to each user.
Inline CSS Rules
Inline CSS Rules are annoying and tedious, but a neccessity if you want to support all email clients. Since 0.3 pynliner is included that will take the CSS from the HEAD and put it into each element that matches the rule
There is a toggle you can set in settings.py to turn this feature on or off: TEMPLATEDEMAILS_USE_PYNLINER = False is the default value.
Celery
Pynliner can be quite slow when inlining CSS. You can move all the execution to Celery with this setting (default is False):
TEMPLATEDEMAILS_USE_CELERY = True
Please note that the given context is passed to Celery unchanged.
Install
pip install -e http://github.com/philippWassibauer/templated-emails.git#egg=templated-emails
or
pip install templated-emails
Dependencies
pynliner
cssutils
Follow Me
Metadata
Release files for templated-emails 0.6.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| templated-emails-0.6.9.tar.gz | 9.1 kB | Without provenance | Details for templated-emails-0.6.9.tar.gz |
Release files / templated-emails-0.6.9.tar.gz
| Download URL | templated-emails-0.6.9.tar.gz |
|---|---|
| Size | 9.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a061a6a3008583ea7c2dbded11ae1801a97cae314aa6dc0f1c1cfd568f77764c
|
|
BLAKE2b-256 checksum How to use checksums |
b3eaf563fee5b11c88bebe9e2a8248be838f82edd59c2d7f7b57752f3d8aa835
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for templated-emails 0.6.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.