2015-05-08 2 views
1

У меня есть вопрос, что можно отправить электронное письмо в dev в symfony в localhost wamp с помощью gmail. Из шаблона я получаю входное значение и задаю его в контроллере. В congig_dev у меня есть те SwiftMailer: транспорт: GMAIL хозяин: smtp.gmail.com имя пользователя: '[email protected]' пароль: '****'отправка электронной почты в wamp Symfony 2

Ниже я установил программу из контроллер- >

<?php 

namespace PsiutekBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Request; 


class BasketController extends Controller 
{ 
    public function koszykAction() 
    { 
     return $this->render('PsiutekBundle:Basket:koszyk.html.twig'); 
    } 

    public function SendMailAction() 
    { 
     $Request=$this->get('request_stack')->getCurrentRequest(); 
      if($Request->getMethod()=="POST"){ 

       $subject=$Request->get("Subject"); 
       print_r($subject); 
       exit; 
       $email=$Request->get("email"); 
       $body=$Request->get("message"); 
       print_r($body); 

       $transport=\Swift_SmtpTransport::newInstance('smtp.gmail.com',465,'ssl') 
        ->setUsername('[email protected]') 
        ->setPassword('******'); 
       $mailer=\Swift_Mailer::newInstance($transport); 

       $message = \Swift_Message::newInstance('Web Lead') 
         ->setSubject($subject) 
         ->setTo($email) 
         ->setBody($body); 
       $result=$mailer->send($message); 
      } 


     return $this->render('PsiutekBundle:Basket:koszyk.html.twig'); 
    } 

} 
+0

Возможный дубликат [WAMP send Mail с использованием SMTP localhost] (http://stackoverflow.com/questions/16830673/wamp-send-mail-using-smtp-localhost) или [Как настроить WAMP (localhost) для отправки электронная почта с использованием Gmail?] (http://stackoverflow.com/questions/600725/how-to-configure-wamp-localhost-to-send-email-using-gmail) – Veve

+0

не совсем дубликат, потому что это '' Symfony2' «конкретный вопрос - эти ответы не –

ответ

0

Чтобы отправить электронное письмо в течение Symfony вы должны использовать mailer службу. Поскольку ваш контроллер расширяет Controller, вы можете получить его непосредственно из контейнера. Итак, ваши действия должны выглядеть следующим образом:

public function sendMail() 
{ 
    $mailer = $this->get('mailer'); //getting mailer from container 

    $message = \Swift_Message::newInstance('Web Lead') 
         ->setSubject($subject) 
         ->setTo($email) 
         ->setBody($body); 

    $result=$mailer->send($message); 

} 

Существует специальный howto in cookbook покрытия этой темы.

Примечание: рассмотреть вопрос о переносе отправки логики электронной почты (на самом деле любой логика) за пределами вашего класса контроллера.

ПРИМЕЧАНИЕ 2: Предполагаю, что вы знаете о exit в своем методе, который завершит выполнение метода.

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