laravel-mail/README.md

96 lines
2.0 KiB
Markdown

# 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-bmail": "dev-master"
}
"repositories": [
{
"type": "vcs",
"url": "https://git.bluesquare.io/bluescale/laravel-bmail"
}
]
```
Next, install the package:
```bash
composer update bluescale/laravel-bmail
```
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);
```