lukasss93/laravel-extra-mailable is a Laravel package for extra tools for laravel mailables.
It currently has 3 GitHub stars and 76 downloads on Packagist (latest version v1.0).
Install it with composer require lukasss93/laravel-extra-mailable.
Discover more Laravel packages by lukasss93
or browse all Laravel packages to compare alternatives.
Last updated
Extra tools for Laravel Mailables
You can install the package using composer
composer require lukasss93/laravel-extra-mailable
ExtraMailable Trait in your Mailable 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]);
}
}
<?php
use App\Mail\MyMail;
// send mail to recipient (string)
MyMail::create()->sendTo('[email protected]');
// send mail to recipients (string with semicolon separator)
MyMail::create()->sendTo('[email protected];[email protected]');
// send mail to recipients (array)
MyMail::create()->sendTo(['[email protected]','[email protected]']);
// 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('[email protected]');
// send mail to recipients when condition is true
MyMail::create()->sendToWhen(true, '[email protected]');
// 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('[email protected]');
// execute custom code after sending emails
MyMail::create()
->onAfterSendingMails(fn() => print('This message will be printed after sending emails'))
->sendTo('[email protected]');
composer test
Please see the CHANGELOG.md for more information on what has changed recently.
Please see the LICENSE.md file for more information.