Laravel电子邮件队列有效,但不发送

时间:2019-02-23 16:30:29

标签: php laravel email queue

我在尝试将要发送给注册用户的消息排队时遇到问题,当我运行时一切正常,但是队列无法正常工作,有人可以帮我吗? 这是注册控制人

 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());
    }

1 个答案:

答案 0 :(得分:3)

听起来您没有队列在运行。您可以使用

php artisan queue:work

您可能还需要一个失败的工作表,而工匠对此有一个命令:

php artisan queue:failed-table

php artisan migrate

如果要删除所有失败的作业,可以执行以下操作:

php artisan queue:flush

我建议在laravel文档网站上阅读所有这些内容:https://laravel.com/docs/5.7/queues

我也想分享一个good post on stackoverflow regarding queues

相关问题