2012-11-10 2 views
2

RabbitMQBundle을 사용하여 RabbitMQ를 symfony2 프로젝트에 통합하고 있습니다. 모든 것이 잘 작동합니다 (메시지를 생성하고 소비 할 수 있습니다). 그러나 소비자의 Swift_Message를 사용하여 이메일을 보내려고 할 때마다 이메일을받지 못했습니다. 그래도 소비자의 mail('[email protected]', 'subject', 'message');을 사용하면 효과가 있습니다.RabbitMQ 및 Symfony2를 사용하여 Swift_Message를 보낼 수 없습니다.

$message = \Swift_Message::newInstance() 
    ->setSubject($subject) 
    ->setFrom('[email protected]') 
    ->setTo('[email protected]') 
    ->setBody('Foo Bar'); 

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

이 코드는 "정상"컨트롤러 또는 서비스 내에서 작동합니다

는 여기가 Swift_Message를 보낼 때 사용하는 코드입니다. 그러나 RabbitMQ가 소비자를 트리거 할 때 작동하지 않습니다.

실마리가 있습니까?

+0

안녕하세요, 소비자의 컨테이너에 대한 참조를 얻는 방법을 설명해 주시겠습니까? – frak

+0

서비스의 인수로'@ service_container'를 사용할 수 있습니다 (http://symfony.com/doc/current/book/service_container.html#creating-configuring-services-in-the-container 참조). 그러나 적절한 서비스를 제공하는 편이 낫습니다. 제 경우에는 우편 발송자입니다. 당신은'@ mailer'로 그것을 주입 할 수 있습니다. –

답변

7

swiftmailer의 스풀 기능을 비활성화해야합니다. swiftmailer 번들 구성의 spool을 제거하십시오.

swiftmailer: 
    # ... 

swiftmailer: 
    # ... 
    spool: { type: memory } 

에서

받기 당신은이 기능 here에 대한 자세한 내용을보실 수 있습니다.