0

報告書付きの電子メールの送信に問題があります。私はいくつかのデータを作成し、それを電子メールとしてユーザーに送信しようとしています。ただし、メールは配信されません。Symfony cookboolのように構成された swiftmailer を使用しています。FosUserBundle からのメールは問題なく動作しているため、swiftmailer のパラメータは適切に設定されています。コマンドラインで使用するメソッドを作成しました。コードは以下のとおりです

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