Add a short description here!
Project description
[]
template-mailer
A simple python client for sending mass emails from html templates.
Description
The template-mailer lets you fill variables in html-templates and send the populated content via email. It makes use of the jinja2 templating langauge (Reference).
Usage
Provide your html-template as a string to the render_template-method:
>>> from template_mailer import render_template
>>> template = "<html> foo: {{ variable }} </html>"
>>> data = {"variable": "bar"}
>>> render_template(template, data)
'<html> foo: bar </html>'
Use the SMTPClient to send the rendered template as html-email with the SMTPClient:
>>> from template_mailer import SMTPClient
>>> smtp_client = SMTPClient()
>>> smtp_client.send("targetemailalldress@test.test", "subject", "message")
By default the client will look for the following environment variables:
SMTP_HOST
,
SMTP_PORT
(starttls),
EMAIL_USER
(your email address),
EMAIL_PASSWORD
You can provide the SMTP configurations in plain form as well:
>>> smtp_client = SMTPClient("smtp.gmail.com", 587, "your_email@gmail.coim", "your_password")
Options
Encryption
The default email encryption is TLS. An SSL option is not yet provided and will be part of a future release.
Missing data
The render_template method will throw an error if you don't provide enough data to populate all template-variables:
>>> from template_mailer import render_template
>>> template = "<html> foo: {{ variable }} ham: {{ second_variable }} </html>"
>>> data = {"variable": "bar"}
>>> render_template(template, data)
Traceback (most recent call last):
...
jinja2.exceptions.UndefinedError: 'second_variable' is undefined
To change this policy you can provide the option undefined="allow" to the render_template-method:
>>> from template_mailer import render_template
>>> template = "<html> foo: {{ variable }} ham: {{ second_variable }} </html>"
>>> data = {"variable": "bar"}
>>> render_template(template, data, undefined="allow")
'<html> foo: bar ham: </html>'
Logging
By default the SMTPClient uses the root-logger with log-level INFO. You can inject your own logger into the client:
>>> from template_mailer import SMTPClient
>>> import logging
>>> some_logger = logging.getLogger("demo")
>>> smtp_client = SMTPClient(logger=some_logger)
Note
This project has been set up using PyScaffold 3.2.3. For details and usage information on PyScaffold see https://pyscaffold.org/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file template-mailer-0.4.0.tar.gz
.
File metadata
- Download URL: template-mailer-0.4.0.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.40.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f41ff32c1ef2ce369ea88aa77a8a29e557a709d8552c8bf7c27b44b6505bceec |
|
MD5 | ab558ae8e237dc86c94027a9fad7592c |
|
BLAKE2b-256 | d71464e6743493a2ec695d50c02bc85928580efdaf9cafc700a8e2f1fb3f248b |