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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top