2013-11-12 4 views
0

Я занимаюсь разработкой приложения в Symfony2 У меня есть команда, которая будет работать в кронтабSymfony2 не пошлите электронную почту

Это команда:

<?php 
namespace project\projBundle\Service; 
use Doctrine\ORM\EntityManager; 
use Symfony\Component\Templating\EngineInterface; 
class Sender { 
    protected $em; 
    protected $templating; 
    protected $mailer; 
    public function __construct($em, $templating,\Swift_Mailer $mailer) { 
     $this->em = $em; 
     $this->templating = $templating; 
     $this->mailer = $mailer; } 

    public function runSender() { 
     $proj = $this->em->createQuery("query")->setMaxResults(20)->getResult(); 
     $message = \Swift_Message::newInstance() 
      ->setSubject('Contact enquiry from symblog') 
      ->setFrom('[email protected]') 
      ->setTo('[email protected]') 
      ->setBody($this->templating->render('projectprojBundle:Others:emailNew.html.twig', array('proj' => $proj))); 

     $this->mailer->send($message); } } 

parameters.yml:

parameters: 
    mailer_transport: gmail 
    mailer_host: ~ 
    mailer_user: [email protected] 
    mailer_password: ... 

В config_test:

swiftmailer: 
    disable_delivery: false 

Но по какой-то причине это не отправляет электронное письмо. Что я делаю неправильно?

ответ

1

By default письма хранятся в файлах, и вы должны выполнить следующую команду, чтобы отправить их:

console swiftmailer:spool:send 

Если вы хотите отправить электронную почту непосредственно без наматывая их добавить spool: { type: memory } в ваш конфигурационный файл:

swiftmailer: 
    disable_delivery: false 
    spool: { type: memory } 

Подробнее см. В Symfony2 documentation.

Смежные вопросы