Email Scheduler Package for Laravel
Published on by Paul Redmond
The Mailator package is an email scheduler for Laravel. It provides a lightweight package around configuring email schedules and templates based on application events:
use Binarcode\LaravelMailator\Tests\Fixtures\InvoiceReminderMailable;use Binarcode\LaravelMailator\Tests\Fixtures\SerializedConditionCondition; Binarcode\LaravelMailator\Scheduler::init('Invoice reminder.') ->mailable(new InvoiceReminderMailable($invoice)) ->recipients('foo@binarcode.com', 'baz@binarcode.com') ->constraint(new SerializedConditionCondition($invoice)) ->days(3) ->before($invoice->due_date) ->save();
The above example takes a Mailable instance, recipients, a set of sending constraints that must evaluate to true
, and the ability to schedule the email send "three days before the due date."
Apart from the above constraint()
method, you can implement the package's Constraintable
interface:
use Binarcode\LaravelMailator\Constraints\Constraintable; class InvoiceReminderMailable extends Mailable implements Constraintable{ public function constraints(): array { return [ new DynamicContraint ]; }}
This package also includes an email templating feature, which you can learn more about in the package readme. You can learn more about this package on GitHub: BinarCode/laravel-mailator.