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 に答える