我已经在我的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);
}
}
请帮忙
谢谢
萨姆
答案 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(...);
现在可以使用
玩得开心,希望它可以帮助一些人
萨姆