Adds database storage of emails and CMS definition of email templates.
This module adds several enhancements to the core
composer require unclecheese/silverstripe-permamail:dev-master
By default, Permamail is injected as the class for
Email::create() will instantiate a
Permamail object instead of
Permamail is a subclass of
If you would like to use Permamail on a case-by-case basis, simply use
new Permamail() and
new Email() where you see fit, or override the injector setting in the configuration so that
$e = Email::create() ->setFrom('[email protected]') ->toMembers(Member::get()) ->setSubject('Test email') ->setUserTemplate('my-template') ->populateTemplate(array( 'Member' => Member::get()->byID(2) )) ->send();
The API is exactly the same, with only two new methods:
toMembers()accepts an array or
Memberobjects and uses their
setUserTemplate()accepts a string as the identifier of a user-defined template in the CMS. More information in the "Administration" section below.
Permamail provides a new
ModelAdmin interface called
Shows a list of all emails sent. Offers an option to resend.
Allows creation of user-defined templates, with default subjects and "From" addresses.
Every user-defined template can send a test email, and populate the template with the variables you have specified. To do this, the template uses the
ReflectionTemplate class to gather all the variables and blocks in the template, and offers you the opportunity to customise what values are assigned to those variables. Options include:
To run a custom query, you can use a query string like an array is used in the
filter() method of the ORM, for example:
No worries. This module doesn't override the mailer. It just overrides the
The error logger does not use the Email class unless you're unit testing. True errors are sent via simple PHP
For maintenance, use the
PermamailCleanupTask. It accepts two parameters:
unit: the unit of time to go back
count: the number of units to go back
/dev/tasks/PermamailCleanupTask?count=30&unit=days will remove all emails that are more than 30 days old.
Module rating system helping users find modules that are well supported. For more on how the rating system works visit Module standards
Score not correct? Let us know there is a problem