composer require salamwaddah/laravel-mandrill-driver
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')
]
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
]
]);
}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]')
->content([
'product' => $this->product->toArray(),
]);
}| 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 |
view |
function |
Accepts 2 params ($templateName, $keyedContentArray) |
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}}.
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
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|*,