Skip to content

Lukasss93/laravel-extra-mailable

Repository files navigation

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.

About

Extra tools for Laravel Mailables

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages