Laravel-later方法随机激发电子邮件
我使用的是laravel管理员,我试图在特定时间发送电子邮件。我将这个日期时间数据传递到后面方法的第一个参数中 “日期”=>碳@157672840{#543▼ 日期:2019-12-19 02:34:00.0 UTC(+00:00)} 然而,它并没有像我预期的那样工作。它随机发送电子邮件Laravel-later方法随机激发电子邮件,laravel,email,Laravel,Email,我使用的是laravel管理员,我试图在特定时间发送电子邮件。我将这个日期时间数据传递到后面方法的第一个参数中 “日期”=>碳@157672840{#543▼ 日期:2019-12-19 02:34:00.0 UTC(+00:00)} 然而,它并没有像我预期的那样工作。它随机发送电子邮件 $form->saved(function (Form $form) { if ($form->model()->to === '4') {
$form->saved(function (Form $form) {
if ($form->model()->to === '4') {
$emails = EmailAddress::all();
} else {
$emails = EmailAddress::where('user_type', $form->model()->to)->get();
}
$data = ['id' => $form->model()->id, 'title' => $form->model()->title, 'from' => $form->model()->from, 'body' => $form->model()->body, 'date' => $form->model()->schedule_date, 'is_html' => $form->model()->is_html];
foreach ($emails as $email) {
$url = URL::signedRoute('unsubscribe',['email_address_id' => $email->id]);
Mail::to($email)->later($data['date'],new MagazineMail($data,$url));
}
});
return $form;
}
据我所知,如果我想在某个特定的时间发送邮件,我应该在第一个argement中传递一个datetime,所以我不知道为什么我的代码不起作用
我确保我的env文件正确无误,并设置QUEUE_CONNECTION=database。sendmail::dispatch立即发送邮件,该方法用于按计划发送整个电子邮件队列。Mail::to()->later()将执行您需要的操作,只要您已将所有设置排队。因此,正如本文所述,它可能会立即在表单->保存()上发送每封电子邮件两次,然后在我确定的特定时间,我错误地设置了时区。