salamwaddah/laravel-mandrill-driver

Mandrill notification channel for Laravel 9, 10, 11, 12, 13
80,277 11
Install
composer require salamwaddah/laravel-mandrill-driver
Latest Version:v1.6.0
PHP:^8.0
License:MIT
Last Updated:Jul 26, 2026
Links: GitHub  ·  Packagist
Maintainer: salamwaddah

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' => 'noreply@example.com',
    '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(['a@example.com', 'b@example.com'])
        ->fromName('Customized From')
        ->fromEmail('custom_from@example.com')
        ->replyTo('reply@example.com')
        ->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|*,

Related Packages

Version History

Version Released PHP Laravel License
v1.6.0 ^8.0 ^9.0 || ^10.0 || ^11.0 || ^12.0 || ^13.0 MIT
v1.5.0 >=7.0.0 ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0 || ^13.0 MIT
v1.4.0 >=7.0.0 ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0 MIT
v1.3.1 >=7.0.0 ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 MIT
1.3.0 >=7.0.0 ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 MIT