Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Symfony2 Monolog to Email Errors why swiftmailer.transport.real is non-existent service

after updating symfony from 2.3 to 2.4 i got ServiceNotFoundException

 Fatal error: Uncaught exception 'Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException' with message 'The service "monolog.handler.mojhandler" has a dependency on a non-existent service "swiftmailer.transport.real".' in E:\wamp\www\project\vendor\symfony\symfony\src\Symfony\Component\DependencyInjection\Compiler\CheckExceptionOnInvalidReferenceBehaviorPass.php on line 59

here is my config_prod.yml

imports:
    - { resource: config.yml }
monolog:
    handlers:
        main:
            type:         fingers_crossed
            action_level: error
            handler:      streamed
        streamed:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
        mail:
            type:         fingers_crossed
            action_level: error
            handler:      buffered
            channels: ["!app"] # Dont log app because we dont' want 404 errors sending
        buffered:
            type:    buffer
            handler: mojhandler
        mojhandler:
            type:       swift_mailer
            from_email: %mojhandler_logger_email%
            to_email:   %mojhandler_logger_email%
            subject:    "[Panel] An Error Occurred!"
            level:      debug

and here is my swiftmailer configuration from config.yml

# Swiftmailer Configuration
swiftmailer:
    transport: %mailer_transport%
    host:      %mailer_host%
    username:  %mailer_user%
    password:  %mailer_password%
    port:      %mailer_port%
    auth_mode: %mailer_auth_mode%
    encryption: %mailer_encryption%

how can i fix it?

like image 751
vardius Avatar asked Jan 12 '14 12:01

vardius


2 Answers

It seems indeed to be a bug if we dont set the 'spool' config value in the swiftmailer config.

To solve this I had to create the missing services myself (since I don't want to use spool) in one of my services.yml:

swiftmailer.transport.simplemailinvoker:
    class: Swift_Transport_SimpleMailInvoker

swiftmailer.transport.eventdispatcher:
    class: Swift_Events_SimpleEventDispatcher

swiftmailer.transport.real:
    class: Swift_Transport_MailTransport
    arguments: [@swiftmailer.transport.simplemailinvoker, @swiftmailer.transport.eventdispatcher]
like image 196
hgraca Avatar answered Sep 20 '22 01:09

hgraca


It appears to be an error when upgrading to Monolog Bundle 2.5.0 that causes this if you do not have the 'spool' config value set under the swiftmailer configuration.

like image 39
Jason Roman Avatar answered Sep 18 '22 01:09

Jason Roman