Laravel 5.7 Функция очереди, но не отправка электронной почты - PullRequest
0 голосов
/ 11 июля 2019

Я создал уведомление с ShouldQueue, и моя таблица "job" заполняется, но, когда я запускаю команду: "php artisan queue: listen", строки в таблице обрабатываются, но не отправляют электронное письмо.

Если очередь не используется, все функции кода и электронная почта отправляются по назначению.

Я использую уценку для отправки электронной почты.

Команда:

namespace App\Console\Commands;

use Illuminate\Console\Command;

//
use Notification;
use App\Notifications\Listini\NotifyListinoUpdate;

class StoreListinoOil extends Command
{
  /**
  * The name and signature of the console command.
  *
  * @var string
  */
  protected $signature = 'command:storelistinooil';

  /**
  * The console command description.
  *
  * @var string
  */


  /**
  * Create a new command instance.
  *
  * @return void
  */
  public function __construct()
  {
    parent::__construct();
  }

  /**
  * Execute the console command.
  *
  * @return mixed
  */
  public function handle()
  {

            $details = array(
              'day_listino' => 'today',
              'email' => 'email@email.com'
            );



            Notification::send($details, new NotifyListinoUpdate($details));


    dd('OK'); 
  }
}

Уведомление -> NotifyListinoUpdate

namespace App\Notifications\Listini;

// use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
// use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
//
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;

class NotifyListinoUpdate extends Notification implements ShouldQueue
{
    // use Queueable;
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    private $details;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct($details)
    {
        $this->details = $details;
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['mail'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {

        return (new MailMessage)
        ->subject('Notifica - '.$this->details['day_listino'])
        ->markdown('mail.admin.listino_update',['details'=> $this->details]);
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}

1 Ответ

0 голосов
/ 11 июля 2019

Необходимо запустить работника очереди, используя следующую команду:

php artisan queue:work

Проверьте документацию по:

Запуск рабочих очереди

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