Symfony2 + swift mailer +命令:显示在控制台中的电子邮件正文

时间:2012-07-09 10:56:02

标签: symfony swiftmailer

我已经在我的Symfony应用中创建了一个新命令

在此命令中,我从FOS捆绑包中拨打发送电子邮件 作为邮件程序的服务。

我的问题是电子邮件正文会显示在控制台中,以便发送电子邮件。

我想说msg mailer方法可以正常运行命令。

这是我的命令

class ReminderCommand extends Command
{
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $this->container = $this->getApplication()->getKernel()->getContainer();            

        # the mailer service works fine out the command
        $mailer = $this->container->get('mailer');
        $mailer->sendMsg(...);          


        $text = ' => mail sent';

        $output->writeln($text);
    }
}

请帮忙

谢谢

萨姆

2 个答案:

答案 0 :(得分:16)

我想你可能已经使用了内存假脱机。

使用内存假脱机时,您必须注意,由于symfony处理控制台命令的方式,电子邮件不会自动发送。你必须自己清理队列。使用以下代码在控制台命令中发送电子邮件:

$container = $this->getContainer();
$mailer = $container->get('mailer');
$spool = $mailer->getTransport()->getSpool();
$transport = $container->get('swiftmailer.transport.real');
$spool->flushQueue($transport);

Refrence: http://symfony.com/doc/2.0/cookbook/console/sending_emails.html

答案 1 :(得分:-2)

我找到了解决方案。

以这种方式使用服务:

    $this->container->get('mailer')->sendMsg(...)

    # the mailer service works fine out the command
    $mailer = $this->container->get('mailer');
    $mailer->sendMsg(...);

现在可以使用

玩得开心,希望它可以帮助一些人

萨姆