0

我在发送带有报告的电子邮件时遇到问题。我正在创建一些数据,然后尝试将其作为电子邮件发送给用户。但电子邮件不会被发送。我正在使用在Symfony cookbool 中配置的 swiftmailer。swiftmailer 的参数设置正确,因为来自 FosUserBundle 的电子邮件正常工作。我已经写了一个在命令行中使用它的方法,代码如下

class DailyRaportCommand extends ContainerAwareCommand
{
protected function configure()
{
    $this
        ->setName('raport:daily')
        ->setDescription('Send daily raports to the Users');
}

protected function execute(InputInterface $input, OutputInterface $output)
{
    $em = $this->getContainer()->get('doctrine')->getEntityManager();
    $users = $em->getRepository('GLUserBundle:User')->findAllByRaport('DAILY');

    foreach($users as $user)
    {
        $date_to = new \DateTime();
        $date_to = $date_to->sub(date_interval_create_from_date_string('1 day'));
        $date_from = new \DateTime();
        $date_from = $date_from->sub(date_interval_create_from_date_string('1 day'));
        $format = "Y-m-d";

        $raport = array();

        foreach($user->getShops() as $shop)
        {
            $raport[$shop->getName()] = array();

            $shop_list = array();               
            $shop_list[] = $shop->getId();
            $groupBy = array();
            $all_policies = $em->getRepository('GLPolicyBundle:Policy')
                        ->findAllByOptions($shop_list, $date_from, $date_to, $groupBy);
            $raport[$shop->getName()]['all'] = $all_policies;

            $groupBy[] = 'typePolicy';
            $policies_by_type = $em->getRepository('GLPolicyBundle:Policy')
                        ->findAllByOptions($shop_list, $date_from, $date_to, $groupBy);
            $raport[$shop->getName()]['type'] = $policies_by_type;          

            $groupBy[] = 'bundle';
            $policies_by_bundle = $em->getRepository('GLPolicyBundle:Policy')
                        ->findAllByOptions($shop_list, $date_from, $date_to, $groupBy);
            $raport[$shop->getName()]['bundle'] = $policies_by_bundle;

        }

        $message = \Swift_Message::newInstance()
                ->setSubject('Dzienny raport sprzedaży')
                ->setFrom('g#######1@gmail.com')
                ->setTo($user->getEmail())
                ->setBody(
                    $this->getContainer()->get('templating')->render(
                        'GLRaportBundle:Raport:raport.html.twig',
                        array('raport' => $raport)
                    ));
        $this->getContainer()->get('mailer')->send($message);
}

电子邮件的 wiev 呈现在外部 twig 文件中。如果有人指出这个问题的原因,我将不胜感激。

4

1 回答 1

1

您可能需要手动刷新内存线轴,请参阅以下帮助我解决相同问题的答案:

无法从自定义 Symfony2 命令中发送电子邮件,但可以从应用程序的其他地方发送

于 2013-07-31T23:41:48.483 回答