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

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 邮件程序,具有不同的参数,对于每个实例,factories.yml 文件中都有配置参数。

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

不完全是你想要的,因为它实际上没有在 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);