lekoala / silverstripe-mandrill
Adds mandrill in the SilverStripe CMS
Fund package maintenance!
lekoala
Installs: 24 661
Dependents: 0
Suggesters: 0
Security: 0
Stars: 18
Watchers: 6
Forks: 18
Open Issues: 0
Type:silverstripe-vendormodule
Requires
- php: >=8.1
- composer/ca-bundle: ^1.1
- silverstripe/framework: ^5
- silverstripe/recipe-plugin: ^2
- silverstripe/vendor-plugin: ^2
- symbiote/silverstripe-gridfieldextensions: ^4.0
- symfony/http-client: ^5.4|^6.0
- symfony/mailchimp-mailer: ^6.3
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
README
Use Mandrill in SilverStripe
Define in your .env file the following constant
MANDRILL_API_KEY='YOUR_API_KEY_HERE'
or by defining the api key in your config.yml
LeKoala\Mandrill\MandrillHelper: mandrill_api_key: "key3goes9here"
This module uses the official php sdk version 1.0.54 with a few tweaks.
You can also autoconfigure the module with the following constants in your .env file
# Will log emails in the temp folders
MANDRILL_ENABLE_LOGGING=true
# Will disable sending (useful in development)
MANDRILL_SENDING_DISABLED=true
# Set app domain explicitly
MANDRILL_DOMAIN="mysite.co.nz"
# Also recommended to specify an explicit from
SS_SEND_ALL_EMAILS_FROM="noreply@mysite.co.nz"
By defining the Api Key, the module will register a new mailer that will be used to send all emails.
Integration
This module create a new admin section that allows you to see results from your api calls right from the SilverStripe CMS without having to log into mandrillapp.com
Webhooks
From the Mandrill Admin, you can setup a webhook for your website. This webhook will be called and MandrillController will take care of handling all events for you.
By default, MandrillController will do nothing. Feel free to add your own extensions to MandrillController to define your own rules, like "Send an email to the admin when we receive a spam complaint".
MandrillController provides 4 extensions points:
- updateHandleAnyEvent
- updateHandleSyncEvent
- updateHandleInboundEvent
- updateHandleMessageEvent
It's recommended that you ensure requests are coming from Mailchimp Transactional rather than an imitator. Webhook authentication is disabled by default but you can enable webhook authentication through the config layer like so:
LeKoala\Mandrill\MandrillController:
webhook_auth_enabled: true
You'll need your webhook authentication key which you can view and reset from the (Webhooks)[https://mandrillapp.com/settings/webhooks] page in your account.
Add your key using the config layer or .env
file.
via config
LeKoala\Mandrill\MandrillController:
webhook_key: YOUR_KEY
via .env file
MANDRILL_WEBHOOK_KEY=YOUR_KEY
Migration from Swift Mailer
SilverStripe 5 replaced swift mailer by symfony/mailer
Make sure to read the docs https://docs.silverstripe.org/en/5/developer_guides/email/ https://symfony.com/doc/current/mailer.html
For SS4 version, check branch 3 and v4 releases
Compatibility
Tested with SilverStripe 5+
Maintainer
LeKoala - thomas@lekoala.be