Frage

Ich bin mit dem Symfony 1.4 Mailer, wo ich die verschiedenen Bits bauen für eine E-Mail benötigt und es dann versenden mit:

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

In dem E-Mail-Körper, ich in der Lage muß Vorteil von Variablen in der Durchführung der Maßnahme zu ergreifen, damit im Augenblick könnte ich dies in meiner Aktion:

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

Kennt jemand eine elegante Art und Weise der Speicherung / Organisation von verschiedenen E-Mail-Körper, anstatt zu Code mit ihnen wie diese direkt in meine Aktion? Ich werde viele E-Mail-Vorlagen haben und haben auch sie in mehreren Sprachen.

Ich habe ein altes Askeet Tutorial diskutiert diese gefunden, aber es scheint etwas veraltet mit der neuen symfony 1.4 Integration von Swiftmailer und Swiftmailer Dokumentation selbst ist auf diese nicht sehr klar.

Danke.

War es hilfreich?

Lösung

Ich speichere die E-Mail-Körper als Vorlagendatei und machen sie über sfPartialView . Z.B. innerhalb einer Aktion:

$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()

Die Körpervorlagen werden in dem Modulvorlagenordner befindet, aber ich bin sicher, Sie können irgendwie diese ändern und z setzen alle E-Mail-Vorlagen in einem Ordner, wenn Sie wollen.

Andere Tipps

Wie wäre es nur mit der nativen Methode availible innerhalb sfaction.

$ this-> getPartial ( 'partial_name'); die funktionieren wie der Teil Helfer für Sie Vorlagen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top