Посылать сообщение с Swiftmailer с команды Symfony

моя проблема состоит в том, что я пробую послать сообщение с command в Symfony 2, но это совсем ошибки, это мой код:

$message = $this->mailer
        ->setFrom('from@example.com')
        ->setTo('example@tt.com')
        ->setSubject('Subject')
        ->setBody('Body')
        ->attach($xml)
    ;

    $this->mailer()->send($message);

Класс команды увеличивает AbstractCommand, который он в свою очередь увеличивает ContainerAwareCommand, и у abstractCommand есть функция, чтобы брать контейнеры, и в ней у меня есть следующее:

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

И это ошибка, которая дает мне, выполнив мою команду

Notice: Undefined property: Project\Libraries\ReportsBundle\Command\GenerateXMLCommand:: $mailer

Он мне понравился бы, чтобы мочь состоять в том, чтобы они сказали мне способ посылать сообщения с команды Symfony 2.

Приветствие. Спасибо.

0
задан 22.03.2016, 10:41
1 ответ
namespace Acme\DemoBundle\Command;

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

class GreetCommand extends ContainerAwareCommand
{
    protected function configure()
    {
        //Blah Blah configuración
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $mailer = $this->getContainer()->get('mailer');

        $message = $mailer
          ->setFrom('from@example.com')
          ->setTo('example@tt.com')
          ->setSubject('Subject')
          ->setBody('Body')
          //No se de donde viene este $xml, pero ahí lo dejo según tu código
          ->attach($xml)
          ;

         $mailer->send($message);
    }
}

Возможно ты не instanciando в твоем классе правильно объект mailer container (ты пробуешь звонить в $this-> mailer, это только ты можешь делать это, если instanciaste/seteaste заблаговременно). Пример, который оставил тебя, малыш mod документации Symfony2 для версии 2.0

Заметь: Версия 2.0 очень Deprecated, ты был бы должен выходить ему upgrade на твою версию по крайней мере до 2.4

http://symfony.com/doc/2.0/cookbook/console/console_command.html

1
ответ дан 24.11.2019, 14:42