Электронная почта Laravel работает, но не отправляется - PullRequest
0 голосов
/ 23 февраля 2019

У меня проблема с тем, что я пытаюсь поставить в очередь сообщение для отправки зарегистрированному пользователю, когда я запускаю все работает, но очередь просто не работает, может кто-нибудь помочь мне с этим, пожалуйста?Вот регистрационный контроллер

 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 голосов
/ 23 февраля 2019

Похоже, у вас не работает очередь.Вы можете сделать это с помощью

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

И я также хочу поделиться хорошей записью наstackoverflow относительно очередей .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...