Não é possível enviar e-mail a partir do comando Symfony2 personalizado, mas pode partir de outro local no aplicativo

Eu escrevi um comando de console personalizado para consultar meu banco de dados, produzir um relatório e enviá-lo por e-mail para um endereço; no entanto, parece que não consigo enviar o e-mail com sucesso. Eu posso enviar e-mail bem de dentro de controladores normais em outro lugar dentro do meu aplicativo, e também posso enviá-lo de dentro do meu comando do console se eu criar e configurar manualmente uma instância do Swift_Mailer e não obtê-la através do contêiner.

Aqui está uma versão simplificada do meu comando de console:

<?php

namespace Foo\ReportBundle\Command;

use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class ExpiryCommand extends ContainerAwareCommand
{
    protected function configure()
    {
        $this->setName('report:expiry')
            ->setDescription('Compile and send e-mail listing imminent expiries');
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        /* ... */
        $message = \Swift_Message::newInstance()
            ->setSubject('Expiry report')
            ->setFrom('[email protected]')
            ->setTo('[email protected]')
            ->setBody($body);

        $mailer = $this->getContainer()->get('mailer');

/*      This works...
        $transport = \Swift_SmtpTransport::newInstance('smtp.domain.com', 25)
            ->setUsername('username')
            ->setPassword('password');
        $mailer = \Swift_Mailer::newInstance($transport);
*/
        $result = $mailer->send($message);
        $output->writeln($result);
    }
}

O Swiftmailer está configurado para enviar via SMTP dentro do meuapp/config/config.yml Arquivo (delivery_address: [email protected] também é definido emapp/config/config_dev.yml):

swiftmailer:
    transport: smtp
    host: smtp.domain.com
    username: username
    password: password
    spool:
        type: memory

Ao executar o comando, imprime1 para a linha de comando, o que eu suponho que significa que foi bem sucedido. No entanto, estou monitorando os logs do meu servidor de e-mail ao mesmo tempo e ele nem está se conectando.

Para confirmar que minha configuração estava sendo carregada no mailer, alterei o spool dememory parafile e as mensagens estão sendo colocadas em spool no sistema de arquivos ao executar o comando e eu posso liberar com êxito o spool na linha de comando comphp app/console swiftmailer:spool:send.

Alguém tem alguma idéia do que está acontecendo aqui, ou alguma sugestão de como eu posso depurá-lo ainda mais? Nada está aparecendo no meuapp/logs/dev.log Arquivo. Estou usando o Symfony 2.1.3-DEV.

questionAnswers(3)

yourAnswerToTheQuestion