学习用于Laravel的电子邮件调度程序包

74 阅读1分钟

Mailator包是一个Laravel的电子邮件调度器。它提供了一个轻量级的包,围绕配置电子邮件的时间表和模板,基于应用程序的事件。

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();

上面的例子需要一个Mailable实例, 收件人, 一组必须评估为true 的发送约束条件, 以及安排邮件发送的能力 "在到期日的前三天" 。

除了上述constraint() 方法外,你还可以实现该包的Constraintable 接口。

use Binarcode\LaravelMailator\Constraints\Constraintable;
 
class InvoiceReminderMailable extends Mailable implements Constraintable
{
    public function constraints(): array
    {
        return [
            new DynamicContraint
        ];
    }
}

这个包还包括一个电子邮件模板功能,你可以在包的readme中了解更多信息。