【问题标题】:Symfony2 Swiftmailer Service Definition does not ExistSymfony2 Swiftmailer 服务定义不存在
【发布时间】:2014-10-27 00:53:47
【问题描述】:

我正在尝试使用我自己的服务来覆盖 Swiftmailer 的默认传输。这将允许我使用与 Swiftmailer 相同的方法调用,例如 setTo、setSubject、attach 等。但是,我收到以下错误消息:

The service definition "swiftmailer.mailer.transport.test.mailer" does not exist.

我目前正在使用 Symfony 2.5 和 Swiftmailer Bundle ~2.3。请查看我的 src/Bundle/ApplicationBundle/Resources/config/services.xml 文件和我的 app/config/config.yml 文件与此问题相关的部分:

services.xml

<parameters>
    <parameter key="test.mailer.class">TEST\Bundle\TestBundle\Mail\MailQueueTransport</parameter>
</parameters>

<services>
    <service id="test.mailer" class="%test.mailer.class%">
        <argument type="service" id="service_container"/>
    </service>
</services>

config.yml

imports:
    - { resource: "@TESTTestBundle/Resources/config/services.xml"}

swiftmailer:
    transport: "test.mailer"

所有其他服务都工作得很好,这个方法在 Symfony 2.1.3 和 Swiftmailer Bundle 2.1.0 中工作。目标是使用内置的 Swiftmailer 功能,但将电子邮件放入数据库队列中进行处理,而不是直接发送电子邮件(批量处理大量电子邮件)。

我们将不胜感激。

【问题讨论】:

    标签: php symfony swiftmailer


    【解决方案1】:

    尝试像这样获得服务:

    $this->container->get('test.mailer');
    

    【讨论】:

      【解决方案2】:

      我实际上必须更新 config.yml 并在 swiftmailer 配置下添加:

      swiftmailer:
          default_mailer: test.mailer
      

      这使我可以将我的服务用作默认邮件,因此我现在可以调用:

      $this->container->get('mailer')->send($message);
      

      【讨论】:

        猜你喜欢
        • 2014-12-02
        • 1970-01-01
        • 1970-01-01
        • 2016-02-19
        • 1970-01-01
        • 1970-01-01
        • 2011-09-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多