All Projects → lekoala → silverstripe-mandrill

lekoala / silverstripe-mandrill

Licence: MIT license
Mandrill integration for Silverstripe

Programming Languages

PHP
23972 projects - #3 most used programming language
scheme
763 projects

Projects that are alternatives of or similar to silverstripe-mandrill

Silverstripe-SEO
A SilverStripe module to optimise the Meta, crawling, indexing, and sharing of your website content
Stars: ✭ 41 (+141.18%)
Mutual labels:  silverstripe, silverstripe-4
silverware-calendar
SilverWare Calendar Module
Stars: ✭ 15 (-11.76%)
Mutual labels:  silverstripe, silverstripe-4
silverstripe-base
A base module for my SilverStripe projects
Stars: ✭ 17 (+0%)
Mutual labels:  silverstripe, silverstripe-4
silverstripe-populate
Populate your database through YAML files
Stars: ✭ 23 (+35.29%)
Mutual labels:  silverstripe, silverstripe-module
mailchimp-transactional-python
The official Python client library for the Mailchimp Transactional API
Stars: ✭ 26 (+52.94%)
Mutual labels:  mandrill
SlmMail
Send mail from Laminas or Mezzio using external mail services.
Stars: ✭ 107 (+529.41%)
Mutual labels:  mandrill
mailchimp-transactional-php
The official PHP client library for the Mailchimp Transactional API
Stars: ✭ 24 (+41.18%)
Mutual labels:  mandrill
silverstripe-svg
Basic SVG support for SilverStripe
Stars: ✭ 22 (+29.41%)
Mutual labels:  silverstripe
silverstripe-dashboard
Extendable dashboard for Silverstripe
Stars: ✭ 18 (+5.88%)
Mutual labels:  silverstripe
mandrill-inbound-python
Python Wrapper for Mandrill Inbound Email
Stars: ✭ 20 (+17.65%)
Mutual labels:  mandrill
cwp-watea-theme
A more visually appealing example for starting a theme for a CWP website.
Stars: ✭ 13 (-23.53%)
Mutual labels:  silverstripe
magento2-mandrill
Mandrill integration for Magento 2.
Stars: ✭ 35 (+105.88%)
Mutual labels:  mandrill
silverstripe-singlepageadmin
Single page administration via a LeftAndMain like interface.
Stars: ✭ 24 (+41.18%)
Mutual labels:  silverstripe
silverstripe-apiwesome
A module for SilverStripe which will automatically create customisable JSON/XML feeds for your data objects (including pages), and provides a modular security token that can be used for other applications.
Stars: ✭ 13 (-23.53%)
Mutual labels:  silverstripe
silverstripe-catalogmanager
Catalog administration via a LeftAndMain like interface. Lets you create and edit pages outside of the site tree
Stars: ✭ 36 (+111.76%)
Mutual labels:  silverstripe
go-mail
📨 Simple email interface across multiple service providers (ses, postmark, mandrill, smtp)
Stars: ✭ 39 (+129.41%)
Mutual labels:  mandrill
silverstripe-cookie-consent
GDPR compliant cookie popup and consent checker
Stars: ✭ 16 (-5.88%)
Mutual labels:  silverstripe
sliver
REPL for SilverStripe, powered by Psysh. Interactively debug and tinker with a sliver of your code.
Stars: ✭ 17 (+0%)
Mutual labels:  silverstripe
silverstripe-smtp
Using PHPMailer in SilverStripe
Stars: ✭ 26 (+52.94%)
Mutual labels:  silverstripe
silverstripe-cloudflare
This module aims to relieve the stress of using CloudFlare caching with any SilverStripe project. Adds extension hooks that clears CloudFlares cache for a specific page when that page is published or unpublished
Stars: ✭ 23 (+35.29%)
Mutual labels:  silverstripe

SilverStripe Mandrill module

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="[email protected]"

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

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 - [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].