Pregunta

Estoy usando el programa de correo Symfony 1.4, donde construyo los diversos bits necesarios para un correo electrónico y enviarlo a cabo utilizando:

$this->getMailer()->composeAndSend($sender, $recipient, $subject, $body);

En el cuerpo del correo electrónico, necesito capaz de tomar ventaja de las variables generadas en la acción, por lo que en este momento que podría tener esto en mi acción:

$body = 'Your username is '.$username.' and this is the email body.';

¿Alguien sabe de una manera elegante de almacenar / organización de diversos cuerpos de correo electrónico, en lugar de tener que codificar como esto directamente en mi acción? Voy a tener muchas plantillas de correo electrónico y también ellos tienen en varios idiomas.

He encontrado un viejo tutorial Askeet discutir esto, pero parece un poco fuera de fecha con la nueva integración de Symfony 1.4 de SwiftMailer, y documentación SwiftMailer sí no es muy claro en esto.

Gracias.

¿Fue útil?

Solución

almaceno los cuerpos de correo electrónico como un archivo de plantilla y hacerlos a través de sfPartialView . P.ej. dentro de una acción:

$view = new sfPartialView($this->getContext(), $this->getModuleName(), $this->getActionName(), 'confirmation_mail');
$view->setTemplate('_confirmation_mail.php');

// values can be set e.g. by setAttibute
$view->setAttribute('name', $name);

$body = $view->render()

Las plantillas del cuerpo se encuentran en carpeta de plantillas del módulo, pero estoy seguro de que de alguna manera puede cambiar esto y, por ejemplo, poner todas las plantillas de correo electrónico en una carpeta si así lo desea.

Otros consejos

¿Qué hay de simplemente utilizando el método nativo sfAction dentro dotados.

$ this-> getPartial ( 'partial_name'); que funciona como los ayudantes parciales para usted plantillas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top