在Symfony2中设置Swiftmailer的default_mailer不起作用



我使用的是SwiftmailerBundle 2.3.8附带的Symfony 2.7。

这是我的配置

swiftmailer:
    mailers:
        spool_mailer:
            transport: "%mailer_transport%"
            host:      "%mailer_host%"
            username:  "%mailer_user%"
            password:  "%mailer_password%"
            spool:
                type: file
                path: %kernel.root_dir%/spool
        instant_mailer:
            transport: "%mailer_transport%"
            host:      "%mailer_host%"
            username:  "%mailer_user%"
            password:  "%mailer_password%"
    default_mailer: spool_mailer

我想使用两个邮件,一个用于后台打印,另一个用于即时发送。

这两个命令可以很好地工作,电子邮件要么被后台处理,要么立即发送。

 $this->get('swiftmailer.mailer.instant_mailer')->send($email);
 $this->get('swiftmailer.mailer.spool_mailer')->send($email);

然而,

  $this->get('mailer')->send($email);

不会获取default_mailer,在我的情况下它是后台处理程序,但它会立即发送。我在这里看到了这是可能的,但也许这个答案是错误的。

我在配置文件中遗漏了什么吗?还是我说得不对?

即使使用symfony 2.6.8版本,我也遇到了同样的问题。目前我找到的唯一解决方案是:删除default_mailer参数,并设置具有这样名称的默认mailer,即:default。所以你的配置应该是:

swiftmailer:
    mailers:
        default: # your named spool_mailer
            transport: "%mailer_transport%"
            host:      "%mailer_host%"
            username:  "%mailer_user%"
            password:  "%mailer_password%"
            spool:
                type: file
                path: %kernel.root_dir%/spool
        instant_mailer:
            transport: "%mailer_transport%"
            host:      "%mailer_host%"
            username:  "%mailer_user%"
            password:  "%mailer_password%"

从现在起,对象从$this->getContainer()->get('swiftmailer.mailer');将是定义为默认的错误,并且不会显示更多类似的错误:

[Swift_TransportException]                                                         
  Connection could not be established with host localhost [Connection refused #111] 

这个配置在我目前正在进行的项目中对我有效。

我希望它能有所帮助。

相关内容

  • 没有找到相关文章

最新更新