E-Mails können nicht mit dem benutzerdefinierten Symfony2-Befehl gesendet werden, können jedoch von einer anderen Stelle in der App aus gesendet werden

Ich habe einen benutzerdefinierten Konsolenbefehl geschrieben, um meine Datenbank abzufragen, einen Bericht zu erstellen und ihn per E-Mail an eine Adresse zu senden. Ich kann die E-Mail jedoch scheinbar nicht erfolgreich senden. Ich kann E-Mails problemlos von normalen Controllern an einer anderen Stelle in meiner Anwendung senden und ich kann sie auch von meinem Konsolenbefehl aus senden, wenn ich eine Swift_Mailer-Instanz manuell erstelle und konfiguriere und sie nicht über den Container erhalte.

Hier ist eine abgespeckte Version meines Konsolenbefehls:

<?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 ist so konfiguriert, dass es innerhalb von my über SMTP sendetapp/config/config.yml Datei (delivery_address: [email protected] ist auch eingestellt inapp/config/config_dev.yml):

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

Beim Ausführen des Befehls wird gedruckt1 auf die Kommandozeile, was meiner Meinung nach bedeutet, dass es erfolgreich war. Ich überwache jedoch gleichzeitig die Protokolle meines Mailservers und er stellt keine Verbindung her.

Um zu bestätigen, dass meine Konfiguration in den Mailer geladen wurde, habe ich den Spool von geändertmemory zufile und Nachrichten werden an das Dateisystem gespoolt, wenn der Befehl ausgeführt wird, und ich kann den Spool in der Befehlszeile erfolgreich mit spülenphp app/console swiftmailer:spool:send.

Hat jemand irgendwelche Ideen, was hier passiert, oder Vorschläge, wie ich es weiter debuggen kann? Nichts taucht in meinem aufapp/logs/dev.log Datei. Ich verwende Symfony 2.1.3-DEV.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage