我遇到了一个问题,我试图将一条消息排队发送给注册用户,当我运行时一切正常,但队列只是不起作用,有人可以帮我解决这个问题吗? 这是注册 Controller
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'type' => $data['type'],
]);
$email = (string)$data['email'];
$job = (new SendEmailJob($email))->delay(Carbon::now()->addSeconds(5));
dispatch($job);
return $user;
}
我已经检查了我是否可以发送电子邮件并且它有效我可以发送电子邮件但是当我指向一个特定的电子邮件而不是来自注册表的数据时。 这是 SendEmailJob
public function handle($user)
{
Mail::to($user)->send(new SendEmailMailable());
}
最佳答案
听起来您没有运行队列。你可以用
php artisan queue:work
您也可能需要一个失败的作业表,而 artisan 对此有一个命令:
php artisan queue:failed-table
php artisan migrate
如果您想删除所有失败的作业,您可以这样做:
php artisan queue:flush
我建议在 laravel 文档站点上阅读所有这些内容:https://laravel.com/docs/5.7/queues
关于php - Laravel 电子邮件队列有效但不发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54843630/