Laravel 电子邮件和队列

Laravel emails and queues

在我的应用程序中,用户可以从列表中请求某些服务,应用程序应通知提供此服务的其他用户新请求。

由于很多用户可以提供该服务,我发送了多封电子邮件。

目前我正在设置通过队列发送电子邮件,我想知道最好的方法是什么:

创建一个新队列并通过 ->bcc($arrayOfEmails) 将消息发送给适当的用户,或者为每封电子邮件创建一个新队列:

foreach($arrayOfEmails as $email)
{
  Mail::queue....
  ...
  ->to($email)
  ...
} 

我倾向于第二种解决方案,因为它对我来说更有意义。我相信这样我可以更轻松地处理失败的电子邮件,但我从来没有这样做过,所以我不确定。

这可能是个人喜好问题。

我会为每封电子邮件分别调用 Mail::queue。我觉得代码会简单一点,更容易理解。

比较:

foreach ($email in $list) {

    Mail::queue('emails.my-message', $data, function ($message) use ($email) {
        ...
        $message->to($email);
        ...
    });

}

对比

Mail::queue('emails.my-message', $data, function ($message) use ($list) {
    ...
    foreach ($email in $list) {
        $message->bcc($email);
    }
    ...
});

当然有细微差别,但我认为在第一种情况下更容易理解您在做什么。