Git Product home page Git Product logo

laravel-mandrill-driver's Introduction

Latest Version on Packagist Total Downloads MIT Licensed

Installation

composer require salamwaddah/laravel-mandrill-driver

Configure

Add into your .env file

MANDRILL_SECRET=YOUR_MANDRILL_API_KEY

In your mail.php file

'from' => [
    'address' => '[email protected]',
    'name' => "From Name"
],

'mandrill' => [
    'key' => env('MANDRILL_SECRET', 'SUPER SECRET KEY')
]

Usage

Basic usage

public function via($notifiable)
{
    return [MandrillChannel::class];
}

public function toMandrill($notifiable)
{
    return (new MandrillMessage())
        ->subject('Purchase successful')
        ->addTo($notifiable->email)
        ->view('mandrill-template-name', [
            'product' => $this->product->toArray(),
            'user' => [
                'name' => $notifiable->name,
                'phone' => $notifiable->phone
            ]
        ]);
}

Advanced

public function toMandrill($notifiable)
{
    return (new MandrillMessage())
        ->subject('Purchase successful')
        ->templateName('mandrill-template-name')
        ->addTo($notifiable->email)
        ->addTos(['[email protected]', '[email protected]'])
        ->fromName('Customized From')
        ->fromEmail('[email protected]')
        ->replyTo('[email protected]')
        ->content([
            'product' => $this->product->toArray(),
        ]);
}

Available methods

Method Type Description
subject string Sets the email subject
templateName string Sets template name in Mandrill
addTo string Adds a To email
addTos array Adds multiple To emails
fromName string Overrides the default from name
fromEmail string Overrides the default from email
content array Content array
replyTo string Accepts one parameter($email)
view function Accepts 2 params ($templateName, $keyedContentArray)

Note: To keep it consistent with laravel's Mail implementation of replyTo, you can pass two parameters, second parameter is ignored, and If replyTo is called multiple times only first one will be used and others will be ignored. Because mandrill only allows one email address for reply to.

Usage in Mandrill (Dynamic Handlebars)

When specifying your content in the methods content or view you can then write in handlebars syntax in your Mandrill templates like this;

Hey {{user.name}}, you have successfully purchased {{product.name}}.

Mailchimp syntax

If you wish to use Mailchimp Merge Tags instead of the dynamic handlebars then you can set the $mergeLanguage optional param in templateName method to mailchimp.

In mailchimp merge tags, arrays are not supported, so each tag only accepts a string. Full documentation including booked keywords on mandrill

Mailchimp Example

public function toMandrill($notifiable)
{
    return (new MandrillMessage())
        ->subject('Purchase successful')
        ->templateName('mandrill-template-name', 'mailchimp') << HERE
        ->addTo($notifiable->email)
        ->content([
            'customer_name' => $notifiable->name,
            'invoice_link' => 'http://example.com/download/invoice.pdf',
        ])
}

Then in your mandrill template use as follows;

Hi *|customer_name|*, you can download your invoice from here *|invoice_link|*,

laravel-mandrill-driver's People

Contributors

dependabot-preview[bot] avatar developernaren avatar joorren avatar saddamhussain734 avatar salamwaddah avatar wblommaert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

laravel-mandrill-driver's Issues

Readme

Because there isn't any

Unable to use any other Laravel 5 versions other than 5.5

In your composer.json you have the following:

"illuminate/notifications": "5.5.* || ^6.0 || ^7.0", "illuminate/support": "5.5.* || ^6.0 || ^7.0"

By requiring 5.5., you are preventing other versions of Laravel5 such as 5.7 and 5.8, I would recommend changing this to ^5.0 or 5.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.