2015-11-13 2 views
0

Я использую Symfony 2.7, который поставляется с SwiftmailerBundle 2.3.8.Установка default_mailer для Swiftmailer в Symfony2 не работает

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

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, который является Спулер в моем случае, но он посылает его мгновенно. Я видел here, что это возможно, но, возможно, этот ответ неверен.

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

+0

Я ** действительно не знаю ** почему, но я видел, что объявление строки 'default_mailer: spool_mailer' выше определения почтовых отправлений сделает это. У меня нет никаких вспомогательных документов для этого. Но я считаю, что это достойно. –

ответ

0

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

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() -> получить ('swiftmailer.mailer'); будет определен как один по умолчанию будет отображаться и не более ошибок, как это:

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

Эта конфигурация работала для меня в этом проекте я в настоящее время работаю.

Надеюсь, это поможет.

Смежные вопросы