corpo e-mail in Symfony 1.4 Mailer?
-
20-09-2019 - |
Domanda
sto usando lo Symfony 1.4 mailer in cui ho costruito i vari bit necessari per una e-mail e poi inviarlo utilizzando:
$this->getMailer()->composeAndSend($sender, $recipient, $subject, $body);
Nel corpo dell'e-mail, ho bisogno di in grado di approfittare delle variabili generati nell'azione, così adesso potrei avere questo nel mio intervento:
$body = 'Your username is '.$username.' and this is the email body.';
Qualcuno sa di un modo elegante di memorizzare / organizzazione di vari organi e-mail, invece di dover codificarle in questo modo direttamente nella mia azione? Avrò molti modelli email e vi anche loro hanno in più lingue.
Ho trovato un vecchio esercitazione Askeet discutere di questo, ma sembra un po 'fuori di data con il nuovo symfony 1.4 integrazione di SwiftMailer, e SwiftMailer documentazione sé non è molto chiaro su questo.
Grazie.
Soluzione
I memorizzare i corpi di posta elettronica come file modello e renderli via sfPartialView
. Per esempio. all'interno un'azione:
$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()
I modelli del corpo si trovano nella cartella dei modelli del modulo, ma sono sicuro che si può in qualche modo cambiare questo e per esempio mettere tutti i modelli e-mail in una cartella, se si desidera.
Altri suggerimenti
Che ne dite di semplicemente utilizzando il metodo nativo availible sfAction all'interno.
$ this-> getPartial ( 'nome_partial'); che funziona come gli aiutanti parziali per voi i modelli.