Send dynamic and sophisticated E-mails using Smart Templates
- Currently supports 3 template engines:
tera,handlebarsandliquid - Automatically attaches all your HTML resources to the SMTP message
- Provides you the ability to aggregate multiple E-mails of the same subject and recipients, into a single E-mail with accumulated context
- Supports multiple SMTP connection types:
NOAUTH,TLSandSTARTTLS
| Name | Short / File Extension | Version | Guide / Manual / Tutorial |
|---|---|---|---|
| Tera | tera |
v1.18.1 | https://tera.netlify.app/docs/#templates |
| Handlebars | hbs |
v4.3.6 | https://handlebarsjs.com/guide/ |
| Liquid | liq |
v0.26.1 | https://github.com/Shopify/liquid/wiki/Liquid-for-Designers |
OSA-Mailer uses asynchronous approach for sending E-mails, sacrificing realtime notifications in favour of increasing feature capabilities.
This enables OSA-Mailer the merge of multiple E-mails context of the same recipients, craft beautiful and sophisticated E-mails, using rendering engines, and some other future ideas that are on the table (such as timed or conditioned E-mail messages). It also enables resending E-mails in case of an error, or using other mitigation methods.
- An external tool is creating and writing a formatted E-mail send requests (JSON file) into the
outboxdirectory (refer to thesend_email_requestpython scripts for examples) - The OSA-Mailer service is pulling every X configured seconds for new E-mail send requests found within the
outboxdirectory - OSA-Mailer calculates an E-mail ID for each request base-off its
emailsection and effectively merging dynamiccontextvalues - It then composes an SMTP message using the provided HTML template, rendering it with the chosen rendering engine against the merged context, allowing for a dynamic E-mail creation, while automatically loading all related resources (images) used within that HTML template
- It sends out the final SMTP E-mail message, using the configurations within the
osa_mailer.cmdfile
Tera (click to expand)
- Guide: https://tera.netlify.app/docs/#templates
- Version: v1.18.1
- Repository: https://github.com/Keats/tera
- Alternatives:
Jinja2,Django,Liquid,Twig
A highly advanced, capable and secure by default; rendering engine that follows the OWASP Top 10 guidelines.
A good alternative choice if you are used to template engines such as Jinja2, Django, Liquid or Twig. Originated in the Rust programming language.
Handlebars (click to expand)
- Guide: https://handlebarsjs.com/guide/
- Version: v4.3.6
- Repository: https://github.com/sunng87/handlebars-rust
- Alternatives:
Mustache
A highly popular rendering engine that has been implemented across many programming languages. Considered to be somewhat more limited in features compared to the other engines. Originated in the Javascript programming language.
Liquid (click to expand)
- Guide: https://github.com/Shopify/liquid/wiki/Liquid-for-Designers
- Version: v0.26.1
- Repository: https://github.com/cobalt-org/liquid-rust
- Alternatives:
smarty
A highly advanced, capable and senior rendering engine, offering some optional security capabilities. A good alternative choice if you are used to the smarty template engine. Originated in the Ruby programming language.
Try the rendit CLI tool
This is still an MVP (Minimal Viable Product) and there is still work to be done and features to be added. Features may be added or removed later with no notice (but typically documented in the changelog notes of each release)
MIT
