我需要使用 Laravel 队列和作业发送批量电子邮件。如果我理解,我的这种方法应该分派 1 个作业,其中所有电子邮件都被提取并通过 foreach 循环一个接一个地发送,对吗?不知何故,只发送了一封电子邮件。当我检查邮件时,收件人邮件的格式似乎是“test2@gmail.com”
控制器
$body = $request->body;
$titleName = $request->subject;
$job = (new \App\Jobs\SendQueueEmail($body, $titleName))
->delay(now()->addSeconds(2));
dispatch($job);
工作
public function handle(Request $request)
{
$emailsAlumni = ['test1@gmail.com', 'test2@gmail.com'];
$date = Carbon::now()->format('d M Y');
$data = [
"body" => $this->body,
"date" => $date
];
foreach ($emailsAlumni as $email) {
Mail::send('main.admin.email.general', $data, function ($message) use ($email) {
$message->to($email);
$message->subject('title');
});
}
}
答案 0 :(得分:0)
您不需要循环整个 Mail 实例,您可以直接尝试
Mail::send('main.admin.email.general', $data, function ($message) use ($emailsAlumni) {
$message->to($emailsAlumni);
$message->subject('title');
});