LaravelPackages.net
Acme Inc.
Toggle sidebar
salamwaddah/laravel-mandrill-driver

Mandrill notification channel for Laravel 9, 10, 11, 12, 13

77.063
11
v1.6.0
About salamwaddah/laravel-mandrill-driver

salamwaddah/laravel-mandrill-driver is a Laravel package for mandrill notification channel for laravel 9, 10, 11, 12, 13. It currently has 11 GitHub stars and 77.063 downloads on Packagist (latest version v1.6.0). Install it with composer require salamwaddah/laravel-mandrill-driver. Discover more Laravel packages by salamwaddah or browse all Laravel packages to compare alternatives.

Last updated

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|*,

Star History Chart