Symfony2 使用Swiftmailer捆绑包发送电子邮件。
要在Symfony2中使用和配置Swiftmailer,必须在文档中使用explained这样的配置,例如:使用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需要两种不同的配置,例如:一个使用电子邮件假脱机(例如用于预定的新闻通讯),另一个立即发送所有新电子邮件(例如用于密码丢失服务)。因此,我想应该定义Swiftmailer的两个独立实例。 我如何在Symfony2中执行此操作?
答案 0 :(得分:7)
没有默认的symfony方式来拥有2个不同的实例。但是你可以创建一个扩展swiftmailer的新类,使它成为一个服务,并将你的不同配置传递给父构造函数。
答案 1 :(得分: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