* fix(notification): incorrect date header format The date header in the email envelopes was incorrectly formatted missing a space between the `Date:` header and the value of this header. This also refactors the notification templates system allowing people to manually override the envelope itself. * test: fix tests and linting issues * fix: misc issues * refactor: misc refactoring * docs: add example for envelope with message id * refactor: organize smtp notifier * refactor: move subject interpolation * refactor: include additional placeholders * docs: fix missing link * docs: gravity * fix: rcpt to command * refactor: remove mid * refactor: apply suggestions Co-authored-by: Amir Zarrinkafsh <nightah@me.com> * refactor: include pid Co-authored-by: Amir Zarrinkafsh <nightah@me.com>
5.8 KiB
title | description | lead | date | draft | images | menu | weight | toc | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Notification Templates | A reference guide on overriding notification templates | This section contains reference documentation for Authelia's notification templates. | 2022-06-15T17:51:47+10:00 | false |
|
220 | true |
Authelia uses templates to generate the HTML and plaintext emails sent via the notification service. Each template has
two extensions; .html
for HTML templates, and .txt
for plaintext templates.
This guide effectively documents the usage of the template_path notification configuration option.
Template Names
Template | Description |
---|---|
IdentityVerification | Used to render notifications sent when registering devices or resetting passwords |
PasswordReset | Used to render notifications sent when password has successfully been reset |
For example, to modify the IdentityVerification
HTML template, if your
template_path was configured as
/config/email_templates
, you would create the /config/email_templates/IdentityVerification.html
file to override the
HTML IdentityVerification
template.
Placeholder Variables
In template files, you can use the following placeholders which are automatically injected into the templates:
Placeholder | Templates | Description |
---|---|---|
{{ .LinkURL }} |
IdentityVerification | The URL associated with the notification if applicable. |
{{ .LinkText }} |
IdentityVerification | The display value for the URL associated with the notification if applicable. |
{{ .Title }} |
All | A predefined title for the email. It will be "Reset your password" or "Password changed successfully" , depending on the current step. |
{{ .DisplayName }} |
All | The name of the user, i.e. John Doe |
{{ .RemoteIP }} |
All | The remote IP address (client) that initiated the request or event. |
Examples
This is a basic example:
<body>
<h1>{{ .Title }}</h1>
Hi {{ .DisplayName }}<br/>
This email has been sent to you in order to validate your identity.
Click <a href="{{ .LinkURL }}">here</a> to change your password.
</body>
Some Additional examples for specific purposes can be found in the examples directory on GitHub.
Envelope Template
There is also a special envelope template. This is the email envelope which contains the content of the other templates
when sent via the SMTP notifier. It's strongly recommended that you do not modify this template unless you know
what you're doing. If you really want to modify it the name of the file must be Envelope.tmpl
.
This template contains the following placeholders:
In template files, you can use the following placeholders which are automatically injected into the templates:
Placeholder | Description |
---|---|
{{ .ProcessID }} |
The Authelia Process ID. |
{{ .UUID }} |
A string representation of a UUID v4 generated specifically for this email. |
{{ .Host }} |
The configured host. |
{{ .ServerName }} |
The configured TLS server_name. |
{{ .SenderDomain }} |
The domain portion of the configured sender. |
{{ .Identifier }} |
The configured identifier. |
{{ .From }} |
The string representation of the configured sender. |
{{ .To }} |
The string representation of the recipients email address. |
{{ .Subject }} |
The email subject. |
{{ .Date }} |
The time.Time of the email envelope being rendered. |
{{ .Boundary }} |
The random alphanumeric 20 character multi-part email boundary. |
{{ .Body.PlainText }} |
The plain text version of the email. |
{{ .Body.HTML }} |
The HTML version of the email. |
Original Templates
The original template content can be found on GitHub.