目前在我们的系统中,我使用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);
}
}
(...)
}