2012-11-13 5 views
8

ottenendo questa risposta via email "HTTP/1.0 200 OK Cache-Control: no-cache Content-Type: text/html; charset = UTF-8 Data: martedì 13 novembre 2012 04:56:14 GMT ".utilizzando mailer rapido di symfony 2, ha ricevuto un'email ma ha ricevuto una risposta non necessaria nell'e-mail

Ecco il mio codice:

public function sendEmail($subject, $template, $templateParams) 
    { 
     $userEmail = $this->session->get('email'); 
     $name = $this->session->get('name'); 
     $adminEmail = $this->container; 
     $templateParams['username'] = $name; 
     $message = \Swift_Message::newInstance() 
       ->setSubject($subject) 
       ->setFrom($adminEmail) 
       ->setTo($userEmail) 
       ->setBody($this->templating->render('SocialDonSocialBundle:Email:'.$template,$templateParams), 'text/html'); 
     $this->mailer->send($message); 

Si noti inoltre che questo metodo è appartiene a un servizio e cioè "E-mail". Ho creato un servizio "Email" che si occupa di inviare e-mail. Qualcuno sa quale potrebbe essere il problema ??

+0

Non riesco a vedere alcun motivo per cui otterresti quelle intestazioni. Il tuo modello fa qualcosa di strano come gli header di output? – lifo

+0

Lo sto prendendo anche io. Hai aggiustato? – dextervip

risposta

25

È necessario utilizzare renderView() anziché render(), poiché render() visualizza sempre l'intestazione. .

+1

Ho avuto lo stesso problema. Grazie per questa risposta –

+0

Risolve perfettamente. Grazie. –

2

Nelle versioni più recenti di Symfony2 come la versione 2.5 *

La soluzione è quella di utilizzare renderResponse e fare un getContent() su di esso:

$content = $this->container->get('templating')->renderResponse(
     'YOUR_TEMPLATE.twig', 
     templateParams) 
    )->getContent(); 

o con gli stessi valori come nella domanda:

$this->templating->renderResponse('SocialDonSocialBundle:Email:'.$template,$templateParams)->getContent();