6

Symfony2Swiftmailerバンドルを使用してメールを送信します。

Symfony2 で Swiftmailer を使用および構成するには、たとえば YAML を使用して、ドキュメントで説明されているような構成を使用する必要があります。

swiftmailer:
    transport:  smtp
    encryption: ssl
    auth_mode:  login
    host:       smtp.gmail.com
    username:   your_username
    password:   your_password

Swiftmailer は Symfony2 でサービスとして定義されており、そのインスタンスはコントローラーで次のように取得できます。

$mailerinstance = $this->get('mailer');

ここで、Swiftmailer に 2 つの異なる構成が必要であるとします。たとえば、1 つはメール スプーリングを使用するもの (定期的なニュースレターなど) で、もう 1 つはすべての新しいメールをすぐに送信するもの (パスワード紛失サービスなど) です。したがって、Swiftmailer の 2 つの別個のインスタンスを定義する必要があると思います。Symfony2 でそれを行うにはどうすればよいですか?

4

2 に答える 2

7

2 つの異なるインスタンスを持つデフォルトの symfony の方法はありません。ただし、swiftmailer を拡張する新しいクラスを作成し、それをサービスにして、別の構成を親コンストラクターに渡すだけです。

于 2013-03-03T17:23:35.217 に答える
4
swiftmailer:
    default_mailer: second_mailer
    mailers:
        first_mailer:
        # ...
        second_mailer:
        # ...

// ...

// returns the first mailer
$container->get('swiftmailer.mailer.first_mailer');

// also returns the second mailer since it is the default mailer
$container->get('swiftmailer.mailer');

// returns the second mailer
$container->get('swiftmailer.mailer.second_mailer');

http://symfony.com/doc/current/reference/configuration/swiftmailer.html#using-multiple-mailers

于 2016-03-29T22:56:39.613 に答える