如何为何时发送电子邮件创建全局规则

时间:2018-08-10 21:20:04

标签: php laravel laravel-5

目前,在我们的系统中,我通过使用laravel可发送邮件发送电子邮件,

Mail::to($user)->send(new AccountCreation($user))

这可以按预期工作,但是在我们的系统中,对于何时向某人发送电子邮件,我们有一些复杂的全局规则,例如:

if ($user->isActive) {
    Mail::to($user)->send(new AccountCreation($user));
}

我不想每次都检查用户,而是希望通过可邮寄的逻辑来处理此问题。

是否有一种干净的方法来处理何时发送电子邮件的全局规则?

1 个答案:

答案 0 :(得分:0)

在用户模型中创建一个mail()函数,并为所有用户插入全局规则。因此,与其调用:

Mail::to($user)->send(new AccountCreation($user))

您将打电话给

$user->mail(new AccountCreation($user))

您可以使您的邮件功能如下:

class User extends Model {
    (...)
    public function mail(Mailer $mailer) {
        if ($this->isActive) {
            Mail::to($this)->send($mailer);
        }
    }
    (...)
}