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);
}
...
});
当然有细微差别,但我认为在第一种情况下更容易理解您在做什么。
在我的应用程序中,用户可以从列表中请求某些服务,应用程序应通知提供此服务的其他用户新请求。
由于很多用户可以提供该服务,我发送了多封电子邮件。
目前我正在设置通过队列发送电子邮件,我想知道最好的方法是什么:
创建一个新队列并通过 ->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);
}
...
});
当然有细微差别,但我认为在第一种情况下更容易理解您在做什么。