我有一個與raports發送電子郵件的問題。我創建了一些數據,然後嘗試將它作爲電子郵件發送給用戶。但電子郵件沒有得到解答。我正在使用配置爲Symfony cookbool的swiftmailer。 swiftmailer的參數設置正確,因爲來自FosUserBundle的電子郵件沒有問題。我有寫一個方法在COMAND行使用它的代碼如下電子郵件不會發送給用戶
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#######[email protected]')
->setTo($user->getEmail())
->setBody(
$this->getContainer()->get('templating')->render(
'GLRaportBundle:Raport:raport.html.twig',
array('raport' => $raport)
));
$this->getContainer()->get('mailer')->send($message);
}
電子郵件的wiev在外面樹枝文件被渲染。如果有人指出這個問題的原因,我將不勝感激。
我認爲你缺少收盤'}'你的第一個換' loop'。如果您在Controller中呈現模板並使用瀏覽器訪問它,會發生什麼?模板是否正確渲染?同時檢查'app/logs /'目錄中的日誌文件是否有錯誤。 – ferdynator
與問題無關,只是一個快速提示。您應該將存儲庫'$ em-> getRepository('GLPolicyBundle:Policy')'設置爲一個變量並從那裏訪問它,而不是多次調用'getRepository()'。 – nifr