No se puede enviar un correo electrónico desde el comando Symfony2 personalizado, pero se puede enviar desde otro lugar en la aplicación

He escrito un comando de consola personalizado para consultar mi base de datos, generar un informe y enviarlo por correo electrónico a una dirección; Sin embargo, parece que no puedo enviar con éxito el correo electrónico. Puedo enviar una multa por correo electrónico desde los controladores normales a otra parte de mi aplicación, y también puedo enviarla desde el comando de mi consola si creo y configuro manualmente una instancia de Swift_Mailer y no la obtengo a través del contenedor.

Aquí hay una versión simplificada de mi comando de consola:

<?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);
    }
}

Swiftmailer está configurado para enviar a través de SMTP dentro de miapp/config/config.yml expediente (delivery_address: [email protected] también se establece enapp/config/config_dev.yml):

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

Al ejecutar el comando, se imprime.1 a la línea de comando, que supongo que significa que fue exitoso. Sin embargo, estoy monitoreando los registros de mi servidor de correo al mismo tiempo, y ni siquiera se está conectando.

Para confirmar que mi configuración se estaba cargando en la aplicación de correo, cambié el spool dememory afile y los mensajes se envían al sistema de archivos cuando se ejecuta el comando y puedo vaciar el carrete en la línea de comandos con éxitophp app/console swiftmailer:spool:send.

¿Alguien tiene alguna idea sobre lo que está sucediendo aquí o alguna sugerencia sobre cómo puedo depurarlo más? Nada esta apareciendo en miapp/logs/dev.log expediente. Estoy usando Symfony 2.1.3-DEV.

Respuestas a la pregunta(3)

Su respuesta a la pregunta