Я пытаюсь использовать другую конфигурацию SMTP для каждого пользователя моего приложения. Таким образом, используя Swift_SmtpTransport, установите новый экземпляр транспорта, назначьте его Swift_Mailer и затем назначьте его Laravel Mailer.Laravel Mail Queue: изменить транспорт на лету
Ниже приводится полный фрагмент кода:
$transport = Swift_SmtpTransport::newInstance($mailConfig['smtp_host'], $mailConfig['smtp_port'], 'ssl');
$transport->setUsername($mailConfig['smtp_user']);
$transport->setPassword($mailConfig['smtp_pass']);
$smtp = new Swift_Mailer($transport);
Mail::setSwiftMailer($smtp);
Mail::queue(....);
сообщения добавляются в очередь, но никогда не отправляется. Я предполагаю, что, поскольку «реальная» отправка является асинхронной, она использует конфигурацию по умолчанию SMTP, а не транспортную установку перед Mail :: queue().
Итак, вопрос в том, как изменить почтовый транспорт при использовании Mail :: queue()?
Просто спросить, есть ли у вас очереди слушателя? Поскольку ваш код выглядит нормально на основе Swift Mailer Docs – Froxz
@Froxz да, я использую очередь: работайте с флагом --daemon. Supervisord работает без ошибок. – Luciano
Какая версия Laravel вы используете? – Bogdan