The goal of this module is to produce simple and easy-to-digest emails (more). The templates used are based on the Postmark Transactional Email Templates.
The StructuredEmail
class extends the Email
class. You can use it standalone or you may wish to inject StructuredEmail as the Email class for your project using Injector
.
For specific core emails, it will attempt to detect the purpose of the email based on the template name:
SilverStripe/Control/Email/ForgotPasswordEmail
- the forgot password emailSilverStripe/Control/Email/ChangePasswordEmail
- the changed password email
TODO:
SilverStripe/MFA/Email/*
- MFA emailsSilverStripe/ContentReview/*
- Content review emailsSubmittedFormEmail
- user defined form generic emailSubmittedFormEmailPlain
- user defined form generic email (plain text)
If the class encounters a complete HTML document in the email, it will use HTML contained within the <body>
tag of that document as the email content.
- E-mail support across clients: https://www.caniemail.com
- Postmark templates: https://github.com/ActiveCampaign/postmark-templates
For finer grain control, use StructuredEmail
directly.
<?php
// Your custom HTML body
$html = ArrayData::create([
'Name' => $name,
'CallToAction' => $link
])->renderWith('My/Template');
$data = [
'Body' => $html// Your email HTML
];
$email = StructuredEmail::create();
$email->setTo(["to@example.com", "To name"]);
$email->setFrom(["from@example.com" => "From name"]);
$email->setData($data);
// will automatically pick up StructuredEmail.ss as the template
$email->send();
Emails are decorated using a standard, basic colour palette from the NSW Design System. You can provide your own decorator.
The only supported way of installing this module is via composer
composer require nswdpc/silverstripe-structured-email
The source of the HTML email templates is the Postmark templates project
We welcome bug reports, pull requests and feature requests on the Github Issue tracker for this project.
Please review the code of conduct prior to opening a new issue.
If you have found a security issue with this module, please email digital[@]dpc.nsw.gov.au in the first instance, detailing your findings.
If you would like to make contributions to the module please ensure you raise a pull request and discuss with the module maintainers.
Please review the code of conduct prior to completing a pull request.