This is a generic mailer.
It can be used to send emails via a template.
In a near future, it will be able to be a daemon so we can request it through libipc.
src | ||
templates | ||
.gitignore | ||
README.md | ||
shard.yml |
What
mailer
is an application to send templated emails.
Templates are in the Crinja format (a Jinja derivative).
# Get some help.
mailer -h
Sending a mail
# One-shot email transfer. "login" and "token" are template parameters.
# mailer send <template> <email>
FROM=no-reply@example.com \
SUBJECT="Activate your email" \
login=mypseudo \
token=aabbccdd \
mailer send activation-email user@home.com
By default, configuration is:
- smtp deamon host is '127.0.0.1', port 25
- template directory is
/etc/mailer/templates/
- FROM and SUBJECT (mail object) are retrieved from environment variables
So, in the previous example, without any configuration, the template activation-email refers to the file /etc/mailer/templates/activation-email.j2
(the j2
extension is for Jinja).
The /etc/mailer/templates/activation-email.j2
template could look like this:
Hello and welcome to example.com!
To activate your account, please follow the link bellow:
https://example.com/user-activation/{{ login }}/{{ token }}
Thanks for trusting us!
Have a good day,
--
Staff of example.com.
Configuration
As most programs from Baguette
repositories, a configuration file can be used.
The configuration file should be either in $XDG_CONFIG_HOME/baguette/
(first guess) or in /etc/baguette/
.
In mailer
, this file is used to configure:
- how to contact the smtp deamon (host and port)
- what directory should be used for templates
- FROM and SUBJECT email fields
An exhaustive example:
# ~/.config/baguette/mailer.yml
# SMTPd configuration.
smtpd_host: localhost
smtpd_port: 25
# Where to find templates, if not in the defaut directory (/etc/mailer/templates/).
templates_directory: /etc/mailer/templates
# Configuration for each template.
templates:
# Template name, associated to the mail configuration: "from" and "subject" headers.
# Template names match the template file name in the template directory.
# In this example, the following template file is:
# /etc/mailer/templates/example.com-mail-activation-en.j2
example.com-mail-activation-en:
from: no-reply@example.com
subject: Account activation on the example.com website
example.com-mail-recovery-en:
from: no-reply@example.com
subject: Mail recovery for the example.com website