1

如何在 Symfony 的管理面板中配置电子邮件?默认我必须在文件 factory.yml 中设置:

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

我想在管理面板中设置主机、端口、加密、用户名和密码,并将其保存在我的数据库中。那么,如果我发送邮件,如何从数据库中获取这些数据?

    $message = $this->getMailer()->compose(
      array('jobeet@example.com' => 'Jobeet Bot'),
      $affiliate->getEmail(),
      'Jobeet affiliate token',
      <<<EOF
Your Jobeet affiliate account has been activated.

Your token is {$affiliate->getToken()}.

The Jobeet Bot.
EOF
    );

    $this->getMailer()->send($message);

我可以从数据库中获取这些数据:) 但我不知道如何写入 getMailer()。

4

1 回答 1

4

配置邮件程序时会触发一个事件。

$dispatcher->notify(new sfEvent($this, 'mailer.configure'));

因此,您可以在此事件上添加一个侦听器,检索邮件程序对象,然后重新配置它。

或者,如本片段所述,您可以手动构建对邮件程序的调用并定义如何设置配置(并获得在任务中使用 getMailer 的优势):http ://snippets.symfony-project.org/snippet /377

于 2012-04-16T09:22:16.943 回答