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



目前在我们的系统中,我使用laravel可邮寄设备发送电子邮件,如下所示

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

这按预期工作,但是在我们的系统中,我们有一些复杂的全局规则,规定何时向应该在任何地方使用的人发送电子邮件,例如:

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

我不想每次都检查用户,宁愿可邮寄逻辑处理这个问题。

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

在用户模型中创建一个 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);
}
}
(...)
}

最新更新