Настройка default_mailer для Swiftmailer в Symfony2 не работает

Я использую Symfony 2.7, который поставляется с SwiftmailerBundle 2.3.8.

Это моя конфигурация

swiftmailer:
    mailers:
        spool_mailer:
            transport: "%mailer_transport%"
            host:      "%mailer_host%"
            username:  "%mailer_user%"
            password:  "%mailer_password%"
            spool:
                type: file
                path: %kernel.root_dir%/spool

        instant_mailer:
            transport: "%mailer_transport%"
            host:      "%mailer_host%"
            username:  "%mailer_user%"
            password:  "%mailer_password%"
    default_mailer: spool_mailer

Я хочу использовать 2 почтовых программы, один для буферизации и один для их мгновенной отправки.

Эти две команды будут работать просто отлично, электронная почта либо помещается в буфер, либо отправляется мгновенно.

 $this->get('swiftmailer.mailer.instant_mailer')->send($email);
 $this->get('swiftmailer.mailer.spool_mailer')->send($email);

Тем не мение,

  $this->get('mailer')->send($email);

Не получает default_mailer который является спулером в моем случае, но он отправляет его мгновенно. Я видел здесь, что это возможно, но, возможно, этот ответ неверен.

Я что-то упустил в файле конфигурации? Или я не правильно это называю?

1 ответ

Я сталкиваюсь с той же проблемой, хотя использую Symfony версии 2.6.8. Единственное решение, которое я нашел в данный момент: удалить параметр default_mailer и установить почтовую программу по умолчанию с таким именем: default. Таким образом, ваша конфигурация будет выглядеть так:

swiftmailer:
    mailers:
        default: # your named spool_mailer
            transport: "%mailer_transport%"
            host:      "%mailer_host%"
            username:  "%mailer_user%"
            password:  "%mailer_password%"
            spool:
                type: file
                path: %kernel.root_dir%/spool

        instant_mailer:
            transport: "%mailer_transport%"
            host:      "%mailer_host%"
            username:  "%mailer_user%"
            password:  "%mailer_password%"

С этого момента объект получен из $this->getContainer()->get('swiftmailer.mailer'); будет определено как значение по умолчанию, и НЕТ больше ошибок, как это будет показано:

[Swift_TransportException]                                                         
  Connection could not be established with host localhost [Connection refused #111] 

Эта конфигурация работала для меня в проекте, над которым я сейчас работаю.

Я надеюсь, что это помогает.

Другие вопросы по тегам