Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel-later方法随机激发电子邮件_Laravel_Email - Fatal编程技术网

Laravel-later方法随机激发电子邮件

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') {

我使用的是laravel管理员,我试图在特定时间发送电子邮件。我将这个日期时间数据传递到后面方法的第一个参数中

“日期”=>碳@157672840{#543▼ 日期:2019-12-19 02:34:00.0 UTC(+00:00)}

然而,它并没有像我预期的那样工作。它随机发送电子邮件

    $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()将执行您需要的操作,只要您已将所有设置排队。因此,正如本文所述,它可能会立即在表单->保存()上发送每封电子邮件两次,然后在我确定的特定时间,我错误地设置了时区。