Email service
The platform provides a service for sending emails. That service may be used by other services that need to reach users via email.The emails to be sent can be created by the service’s user or may use already defined templates. This allows the developer or the administrator to not need to define similar or equal emails more than once. Localized versions for such templates are also an option. All the features provided by the email service are supported by the underlying library nodemailer. Check it out if you need something that’s not explicitly supported by this service.
Configuring the service
The service is configured via the wac.ini
file as usual. It contains a top-level entry named [mailer]
that holds the service’s details.
There is one mandatory option to be provided: host
, which identifies the SMTP host:
- host
The host (name or IP address) of the SMTP server.
- username
The username for authenticating against the SMTP server.
- password
The password to use for the given username.
- port
The SMTP port to use (defaults to 587)
- secure
Whether to use TLS or not when talking with the SMTP.
false
still allow STARTTLS (defaults to false).- pooled
Whether to use a connection pool or not (defaults to false)
- from
A forced From: address, ignoring each email’s one (defaults to the one given in the email object)
Note
Currently, only SMTP/S is supported
Creating new templates
Templates use the handlebars syntax. It’s an easy and intuitive replacement syntax. Just wrap your items to be replaced with {{
}}
and you’re ready to go. Please take a look at provided template and website to learn more about it.
To have a template ready to use, please drop it in a new folder inside templatePath
(variable under [meetings]
entry) . For instance, if you want to add a new template for sending emails for meetings, you can create a new folder called email
inside templatePath
and copy there your template files.
Template naming rules
Template must adhere to strict but simple naming rules. As the email service allows to send both plaintext and HTML versions of an
email, there has to be a template for each of those versions. The plaintext one is mandatory and the HTML is optional. For the plaintext version, the file must be named text.hbs
. The HTML template, is named html.hbs
. If both templates are found, the email will have one alternate part for each of the versions. For example, this might be the real contents of templatePath
:
templatePath/
`- email/
`- html.hbs
`- text.hbs
Localization of templates
There is also support for localization of templates. From the administrator point of view it is as easy as creating a subdirectory in
the template directory named after the locale to be used. Inside this folder we can also include two more files from.hbs
and subject.hbs
which are copied to the corresponding fields of the email. That is, for our example email
template we can provide a Spanish
translation by creating a folder es
inside it with the corresponding localized templates.
templatePath/
`- email/
`- html.hbs
`- text.hbs
`- es/
`- html.hbs
`- text.hbs
`- from.hbs
`- subject.hbs
If no translation is requested, the email
contents will be used.
Note
It’s up to the service using the email service to ask for the localized versions of the email.