2.4 KiB
2.4 KiB
BMail
The BMail package allows you to send email templates with Laravel to the Bluescale API.
Installation
First in your composer.json, add :
"require": {
"bluescale/laravel-bmail": "dev-master"
}
and
"repositories": [
{
"type": "vcs",
"url": "git@git.bluesquare.io:bluescale/laravel-bmail.git"
}
]
Next update your package :
composer update bluescale/laravel-bmail
Then publish the assets from your provider :
php artisan vendor:publish
Finally get your API key :
Connect to https://bluescale.email, go to the Templates tab, click on the API button and copy your API key.
And add it in your .env, along with the API URL :
BMAIL_API_KEY=your_api_key
BMAIL_API_URL=https://bluescale.email/api/project/template/send
Usage
First, create a new notification or use an existing one :
php artisan make:notification BMailNotification
Next, add a public field '$template_id' to your class, which will be initialized in the constructor :
public $template_id;
/**
* BMailNotification constructor.
* @param string $template_id
*/
public function __construct(string $template_id)
{
$this->template_id = $template_id;
}
Then, in the via method add :
return [BMailChannel::class];
Then, create a 'toTemplate()' method, in which you specify your template fields :
public function toTemplate($notifiable)
{
return (new BMailTemplate($this->template_id))
->sender("john.doe@gmail.com", "John OPTIONNAL") OPTIONNAL
->replyTo("jean.grey@gmail.com", "Jean OPTIONNAL") OPTIONNAL
->recipients([
[
"elvis@gmail.com", [
"name" => "Elvis" OPTIONNAL,
"parameters" => ["key" => "value"] OPTIONNAL
]
],
[
"robert@gmail.com"
]
])
->addRecipient("edward@gmail.com")
->parameters(["key" => "value", "key" => "value"])
->addParameter("key", "value");
}
Finally, get the template's id :
Go to https://bluescale.email, Templates tab, click on the template you want to use and copy the template identifier.
And from your controller, send a notification for a user :
User::find('user_id')->notify(new BMailNotification('template_id'));