# laravel-mail The Bluescale Mail package allows you to send Bluescale Mail templates using Laravel notifications system. ## Installation First in your composer.json, add: ``` "require": { "bluescale/laravel-mail": "dev-master" }, "repositories": [ { "type": "vcs", "url": "https://git.bluesquare.io/bluescale/laravel-mail" } ] ``` Next, install the package: ```bash composer update bluescale/laravel-mail ``` If you want to customize the config system: ```bash php artisan vendor:publish ``` Finally, copy your API key from Bluescale Mail (Templates section), and add it in your `.env`: ```bash BMAIL_API_KEY=your_api_key ``` You may also want to use your own API: ```bash BMAIL_API_URL=https://bluescale.email/api/project/template/send ``` ## Usage First, create a new notification or use an existing one: ```bash php artisan make:notification MyAwesomeNotification ``` Add BluescaleMailChannel in the `via()` method: ```php return [BluescaleMailChannel::class]; ``` Then, create a 'toTemplate()' method, in which you specify your template fields : ```php public function toTemplate($notifiable) { return (new BluescaleMailTemplate("my-template-id")) ->sender("john.doe@gmail.com", "John OPTIONAL") // OPTIONAL ->replyTo("jean.grey@gmail.com", "Jean OPTIONAL") // OPTIONAL ->recipients([ [ "elvis@gmail.com", [ "name" => "Elvis" // OPTIONAL, "parameters" => ["key" => "value"] // OPTIONAL ] ], [ "robert@gmail.com" ] ]) ->addRecipient("edward@gmail.com") // OPTIONAL ->parameters(["key" => "value", "key" => "value"]) // OPTIONAL ->addParameter("key", "value") // OPTIONAL ; } ``` The $notifiable is automaticaly added as recipient. In your controller, you can now send your template: ```php User::first()->notify(new MyAwesomeNotification); ```