Symfony 1.4中多个Mailer实例的Factories.yml参数


Factories.yml parameters for Multiple Mailer instances in Symfony 1.4

我正在做一个Symfony 1.4项目,这是默认邮件的factories.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 Mailer不同的参数,对于每个实例,factories.yml文件中都有配置参数。

我该怎么做?以及我如何通过提供邮递员的姓名来获得我想要的参数?

不完全是你想要的,因为它实际上并没有在yml文件中定义mailer,但你可以通过实例化一个新的mailer来实现类似的行为(这里是一个sendgrid的例子):

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