3

我正在使用 Symfony 1.4 邮件程序,在其中构建电子邮件所需的各种位,然后使用以下命令将其发送出去:

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

在电子邮件正文中,我需要能够利用操作中生成的变量,所以现在我的操作中可能包含以下内容:

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

有谁知道存储/组织各种电子邮件正文的优雅方式,而不必像这样直接将它们编码到我的操作中?我将拥有许多电子邮件模板,并且还将拥有多种语言的模板。

我发现一个旧的 Askeet 教程讨论了这个问题,但它似乎与 SwiftMailer 的新 symfony 1.4 集成有些过时,而且 SwiftMailer 文档本身对此并不是很清楚。

谢谢你。

4

2 回答 2

5

我将电子邮件正文存储为模板文件,并通过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()

正文模板位于模块的模板文件夹中,但我相信您可以通过某种方式更改它,例如,如果您愿意,可以将所有电子邮件模板放入一个文件夹中。

于 2010-02-12T22:54:11.890 回答
5

只使用 sfAction 中可用的本机方法怎么样?

$this->getPartial('partial_name'); 它就像模板的部分助手一样工作。

于 2010-03-17T18:13:35.450 回答