在wamp Symfony 2中发送电子邮件

时间:2015-05-08 11:41:40

标签: symfony

我有一个问题,可以使用gmail在localhost wamp中的symfony中开发生成电子邮件。从模板我得到输入值并在控制器中设置。在congig_dev我有那些  swiftmailer:     运输:gmail     主持人:smtp.gmail.com     用户名:'ringleaderr@gmail.com'     密码:'****'

下面我从controller->

设置程序
<?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('ringleaderr@gmail.com')
                    ->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');
    }

}

1 个答案:

答案 0 :(得分: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将终止方法执行。