LaravelPackages.net
Acme Inc.
Toggle sidebar
lukasss93/laravel-extra-mailable

Extra tools for Laravel Mailables

76
3
v1.0
About lukasss93/laravel-extra-mailable

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

Laravel Extra Mailable

Version Downloads PHP Laravel License Build Coverage

Extra tools for Laravel Mailables

🚀 Installation

You can install the package using composer

composer require lukasss93/laravel-extra-mailable

👓 Usage

  1. Add the 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]);
    }
}
  1. How to use the trait:
<?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]');

⚗️ 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.

Star History Chart