Текст электронной почты в почтовой программе Symfony 1.4?

StackOverflow https://stackoverflow.com/questions/2255109

  •  20-09-2019
  •  | 
  •  

Вопрос

Я использую почтовую программу Symfony 1.4, где я создаю различные фрагменты, необходимые для электронного письма, а затем отправляю его с помощью:

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

В теле письма мне нужно иметь возможность использовать переменные, сгенерированные в действии, поэтому прямо сейчас я мог бы использовать это в своем действии:

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

Кто-нибудь знает элегантный способ хранения / организации различных тел электронной почты вместо того, чтобы кодировать их подобным образом прямо в моем действии?У меня будет много шаблонов электронной почты, а также они будут на нескольких языках.

Я нашел старый учебник Askeet, в котором обсуждается это, но он кажется несколько устаревшим из-за новой интеграции symfony 1.4 с SwiftMailer, и сама документация SwiftMailer не очень понятна по этому поводу.

Спасибо.

Это было полезно?

Решение

Я сохраняю тексты электронных писем в виде файла шаблона и визуализирую их с помощью sfPartialView.Например.внутри действия:

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

Шаблоны тела расположены в папке template модуля, но я уверен, что вы можете каким-то образом изменить это и, напримересли хотите, поместите все шаблоны электронной почты в одну папку.

Другие советы

Как насчет того, чтобы просто использовать собственный метод, доступный внутри sfAction.

$this->getPartial('частичное имя');который работает как частичные помощники для ваших шаблонов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top