Question

J'utilise le Symfony 1.4 Mailer où je construis les différents bits nécessaires à un e-mail, puis envoyez-le à l'aide:

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

Dans le corps du message, je dois pouvoir tirer parti des variables générées dans l'action, si en ce moment je pourrais avoir cela dans mon action:

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

Quelqu'un sait-il d'une façon élégante de stockage / organisation de divers organismes de courrier électronique, au lieu d'avoir à les coder comme ceci dans mon action droite? Je vais avoir beaucoup de modèles de courrier électronique et auront également leur en plusieurs langues.

Je l'ai trouvé un vieux tutoriel Askeet en discuter, mais il semble un peu à jour avec la nouvelle symfony 1.4 intégration de SwiftMailer et la documentation SwiftMailer lui-même est pas très clair.

Merci.

Était-ce utile?

La solution

Je stocke les corps de courrier électronique en tant que fichier modèle et les rendre par sfPartialView . Par exemple. à l'intérieur d'une action:

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

Les modèles de corps se trouvent dans le dossier de modèle du module, mais je suis sûr que vous pouvez en quelque sorte changer cela et par exemple mettre tous les modèles de courrier électronique dans un dossier si vous voulez.

Autres conseils

Que diriez-vous simplement en utilisant la méthode native macadamia dans sfAction.

$ this-> getPartial ( 'partial_name'); qui fonctionne comme les aides partielles pour vous des modèles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top