2014-06-07 36 views
5

Jakie są najlepsze praktyki wysyłania wiadomości e-mail z html & css? Mam dużo maili w moich projektach & potrzebują rozwiązania, które mogą pozwolić mi nie napisać znowu wszystko poniżej kod ponownie &:Symfony2 najlepsze praktyki w zakresie wiadomości e-mail

$msg = \Swift_Message::newInstance() 
    ->setSubject('Test') 
    ->setFrom('[email protected]') 
    ->setTo('[email protected]') 
    ->setBody($this->renderView('MyBundle:Default:email1.text.twig')); 

$this->get('mailer')->send($msg); 

Odpowiedz

7

Może moja odpowiedź może pomóc. Jest specjalny pakiet Symfony2-MailerBundle, który renderuje treść wiadomości e-mail z szablonu i pozwala skonfigurować parametry wysyłania w pliku konfiguracyjnym &, nie będziesz musiał przesyłać ich za każdym razem, gdy chcesz zbudować & wysłać e-mail.

+0

Dzięki, ten pakiet naprawdę działa. –

4

Ustaw ten kod jako funkcję w usłudze. Funkcje są do tego.

Aby utworzyć usługę, patrz link poniżej.

How to inject $_SERVER variable into a Service

Uwaga: nie zapomnij, aby wprowadzić usługę poczty jako argument!

arguments: ["@mailer"] 

Po ustawieniu usługi;

public function sendMail($data) 
{ 
    $msg = \Swift_Message::newInstance() 
     ->setSubject($data['subject']) 
     ->setFrom($data['from']) 
     ->setTo($data['to']) 
     ->setBody($this->renderView($data['view'])); 

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

I możesz zadzwonić do swojej usługi jak;

// this code below is just for setting the data 
$data = [ 
    'subject' => 'Hello World!', 
    'from' => '[email protected]', 
    'to' => '[email protected]', 
    'template' => 'blabla.html.twig' 
]; 

// this code below is the actual code that will save you 
$mailer = $this->get('my_mailer_service'); 
$mailer->sendMail($data);