Laravel 5.4 ShouldQueue Не отправлять электронную почту - PullRequest
0 голосов
/ 17 января 2019

У меня есть прослушиватель событий, который будет запускать уведомление при срабатывании события. Уведомление по электронной почте отправляется, когда я не реализую класс ShoulQueue. При внедрении ShouldQueue электронное письмо не отправляется. Я добавил свой код ниже.

Слушатель:

class CustomRequestListener
{
  public function handle(CustomRequestCreated $event)
  {
     $user->notify(new CustomRequestEmail());
  }
}

Класс уведомления

use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;

class CustomRequestEmail extends Notification implements ShouldQueue
{
    use Queueable;

    public function via($notifiable)
    {
        return ['mail'];
    }

    public function toMail($notifiable)
    {
        return (new MailMessage)
            ->subject('Test Mail')
            ->view('layout.testmail.template');
    }
}

queue.php

'default' => env('QUEUE_DRIVER', 'sync'),

'connections' => [

        'sync' => [
            'driver' => 'sync',
        ],
    ....
   ]

.env

QUEUE_DRIVER=sync

1 Ответ

0 голосов
/ 17 января 2019

Вы тестируете это в локальной среде ?

Если это так, вы должны прослушивать очередь, иначе ничего не сработает

Следующие команды начнут вашу очередь. Оставьте команду запущенной, чтобы продолжить прослушивание:

  • При использовании горизонта: php artisan horizon
  • Не используется горизонт: php artisan queue:work

Не местный?

Убедитесь, что на вашем сервере работает работник очереди, это необходимо сбросить при развертывании нового кода. Использование horizon с supervisor - хороший способ справиться с этим.

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