Исключение BindingResolutionException при отправке писем в заданиях Lumen


У меня нет проблем с отправкой синхронных писем, но те, которые выполняются в очереди с использованием Mail::queue, выдают следующую ошибку:

Illuminate\Contracts\Container\BindingResolutionException: Target [Swift_Transport] is not instantiable while building [Illuminate\Mail\Mailer, Swift_Mailer]. in /var/www/myapp.dev/vendor/illuminate/container/Container.php:804

Все настроено правильно, так как электронные письма отправляются, когда я делаю это синхронно

Author: Carlos Fdev, 2017-02-13

1 answers

После того, как у меня было так много проблем с отправкой электронных писем внутри заданий Lumen, я инкапсулировал отправку электронной почты в задание, которое работает с почтовыми отправлениями следующим образом:

MailDispatcher.php

<?php

namespace App\Jobs;

use Illuminate\Contracts\Mail\Mailable;
use Illuminate\Support\Facades\Mail;

class MailDispatcher extends Job {

    public $mail;

    public function __construct(Mailable $mail) {
        $this->mail = $mail;
    }

    public function handle() {
        Mail::send($this->mail);
    }
}

Затем, когда я хочу поставить почту в очередь...

$mail = new MyMailableMail($user);
dispatch(new MailDispatcher($mail));

И он работает правильно

 3
Author: Carlos Fdev, 2017-02-14 08:17:16