Параметры Factories.yml для нескольких экземпляров почтовой программы в Symfony 1.4


Я работаю над проектом Symfony 1.4, это фабрики.yml почтовой программы по умолчанию:

  mailer:
    class: sfMailer
    param:
      logging:           %SF_LOGGING_ENABLED%
      charset:           %SF_CHARSET%
      delivery_strategy: realtime
      transport:
        class: Swift_SmtpTransport
        param:
          host:       127.0.0.1
          port:       25
          encryption: ~
          username:   ~
          password:   ~

И это PHP-код:

$config = sfFactoryConfigHandler::getConfiguration($applicationConfiguration->getConfigPaths('config/factories.yml'));

    self::$mailer = new $config['mailer']['class']($applicationConfiguration->getEventDispatcher(), $config['mailer']['param']);

Где $config['mailer']['class'] является sfMailer.

Что я хочу, так это создать множество почтовых программ Swift с разными параметрами, и для каждого экземпляра на заводах есть параметры конфигурации.файл yml.

Как я могу это сделать? и как я могу получить нужные параметры, указав имя отправителя?

Author: SmootQ, 2015-03-18

1 answers

Не совсем то, что вам нужно, так как на самом деле он не определяет почтовое средство в файле yml, но вы можете добиться аналогичного поведения, создав экземпляр нового почтового средства, например (вот пример с sendgrid):

$transport  = Swift_SmtpTransport::newInstance('smtp.sendgrid.net');
$transport->setUsername('YOU USERNAME');        
$transport->setPassword('YOUR PASSWORD');

$swift      = Swift_Mailer::newInstance($transport); 
$swift->send($message);   
 1
Author: mixkat, 2015-04-01 13:28:49