如何配置Monolog通过SwiftMailer将错误发送到Symfony2中的备用邮件程序

时间:2015-09-08 15:41:44

标签: symfony swiftmailer monolog

在我的symfony2应用程序中,我有两个邮件程序,我想使用非默认邮件程序发送monolog错误。错误正在按预期发送,但我无法将其发送到非默认邮件程序。

这是我的Swift Mailer配置,其中我想使用“phpmail”邮件发送错误:

Swiftmailer配置

default_mailer: authsmtp

mailers:
    authsmtp:
        transport: %mailer_transport%
        host:      %mailer_host%
        username:  %mailer_user%
        password:  %mailer_password%
        port:      %mailer_port%
        spool:     { type: memory }

    phpmail:
        transport: smtp
        host:      127.0.0.1
        spool:     { type: memory }

我的Monolog配置的相关部分:

handlers:

    mail_on_errors:
        type:         fingers_crossed
        action_level: critical
        handler: buffered

    buffered:
        type:    buffer
        handler: swift

    swift:
        type:       swift_mailer
        mailer:     swiftmailer.mailer.phpmail
        from_email: %from_email_address%
        to_email:   [ %errors_receiving_address% ]
        subject:    An Error Occurred!
        level:      debug

你可以看到我试图通过将“mailer:swiftmailer.mailer.phpmail”添加到swift monolog处理程序来实现这一点----这个文档中没有涉及(我无论如何都能找到)所以我刚刚做了这个,并没有出错,但它也没有使用phpmail处理程序。

如果有人知道正确配置以使其发挥作用我会很感激!

1 个答案:

答案 0 :(得分:0)

如果你查看 \Symfony\Bundle\MonologBundle\DependencyInjection\MonologExtension 的源代码,你会发现所有的monolog定义。

swift_mailer handler允许您通过设置" mailer"来定义自定义邮件程序。密钥(正如您猜测的那样)。

$messageFactory->setArguments(array(
    new Reference($handler['mailer']),
    $handler['from_email'],
    $handler['to_email'],
    $handler['subject'],
    $handler['content_type']
));

你确定你的phpmail工作正常吗?