Мне нужно отправлять массовые электронные письма с использованием очереди и заданий Laravel. Если я понял, мой метод таким образом должен отправить одно задание, в котором все электронные письма будут получены, и отправить его одно за другим, проходя цикл foreach, верно? Каким-то образом было отправлено только одно электронное письмо. И когда я проверяю сообщение, оказывается, что сообщение получателя имеет следующий формат - "[email protected]" <[email protected]>. Только аккаунт электронной почты test1 получил письмо. Я не уверен, чем это вызвано. Спасибо за помощь.
Контроллер
$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 = ['[email protected]', '[email protected]'];
$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');
});
}
}
Вам не нужно зацикливать весь экземпляр Mail, вы можете просто попробовать его как
Mail::send('main.admin.email.general', $data, function ($message) use ($emailsAlumni) {
$message->to($emailsAlumni);
$message->subject('title');
});