lukasss93 / laravel-extra-mailable
Extra tools for Laravel Mailables
Fund package maintenance!
Lukasss93
Requires
- php: ^7.4|^8.0
- illuminate/mail: ^7.0|^8.0
- illuminate/support: ^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^5.0|^6.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-12-17 02:28:30 UTC
README
Laravel Extra Mailable
Extra tools for Laravel Mailables
🚀 Installation
You can install the package using composer
composer require lukasss93/laravel-extra-mailable
👓 Usage
- Add the
ExtraMailable
Trait in yourMailable
class:
<?php namespace App\Mail; use Illuminate\Mail\Mailable; use Lukasss93\ExtraMailable\ExtraMailable; class MyMail extends Mailable { use ExtraMailable; protected int $value; public function __construct(int $value = 0) { $this->value = $value; } public function build() { return $this->markdown('emails.myview', ['myvalue' => $this->value]); } }
- How to use the trait:
<?php use App\Mail\MyMail; // send mail to recipient (string) MyMail::create()->sendTo('foo@bar.org'); // send mail to recipients (string with semicolon separator) MyMail::create()->sendTo('foo@bar.org;bar@foo.org'); // send mail to recipients (array) MyMail::create()->sendTo(['foo@bar.org','bar@foo.org']); // send mail to recipients (User) MyMail::create()->sendTo(User::first()); // send mail to recipients (User collection) MyMail::create()->sendTo(User::all()); // you can pass parameters in the create method MyMail::create(69)->sendTo('foo@bar.org'); // send mail to recipients when condition is true MyMail::create()->sendToWhen(true, 'foo@bar.org'); // execute custom code when there is no recipients MyMail::create() ->onEmptyRecipients(fn() => print('No emails sent! No recipient found.')) ->sendTo([]); // execute custom code before sending emails MyMail::create() ->onBeforeSendingMails(fn() => print('This message will be printed before sending emails')) ->sendTo('foo@bar.org'); // execute custom code after sending emails MyMail::create() ->onAfterSendingMails(fn() => print('This message will be printed after sending emails')) ->sendTo('foo@bar.org');
⚗️ Testing
composer test
📃 Changelog
Please see the CHANGELOG.md for more information on what has changed recently.
🏅 Credits
📖 License
Please see the LICENSE.md file for more information.