lekoala/silverstripe-mandrill

Adds mandrill in the SilverStripe CMS

Installs: 18 733

Dependents: 0

Suggesters: 0

Security: 0

Stars: 17

Watchers: 4

Forks: 17

Open Issues: 1

Type:silverstripe-vendormodule

4.0.0 2021-10-05 09:22 UTC

This package is auto-updated.

Last update: 2021-10-05 09:22:56 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Build Status codecov.io

Latest Stable Version Latest Unstable Version Total Downloads License Monthly Downloads Daily Downloads

codecov.io

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

Swift Mailer 6

Swift Mailer 6 introduced quite a lot of breaking changes, make sure you are not using any of those:

  • added Swift_Transport::ping()
  • removed Swift_Mime_HeaderFactory, Swift_Mime_HeaderSet, Swift_Mime_Message, Swift_Mime_MimeEntity, and Swift_Mime_ParameterizedHeader interfaces
  • removed Swift_MailTransport and Swift_Transport_MailTransport
  • removed Swift_Encoding
  • removed the Swift_Transport_MailInvoker interface and Swift_Transport_SimpleMailInvoker class
  • removed the Swift_SignedMessage class
  • removed newInstance() methods everywhere
  • methods operating on Date header now use DateTimeImmutable object instead of Unix timestamp; Swift_Mime_Headers_DateHeader::getTimestamp()/setTimestamp() renamed to getDateTime()/setDateTime()
  • bumped minimum version to PHP 7.0
  • removed Swift_Validate and replaced by egulias/email-validator

Compatibility

Tested with SilverStripe 4.9+

Maintainer

LeKoala - thomas@lekoala.be