使用Smarty模板发送电子邮件

时间:2012-01-24 09:04:46

标签: php mysql smarty

我有一个名为Template的表,我将其设置为通过邮件发送它们,我需要输入php变量。

我的问题是:从表格中检索后,我可以使用Smarty编辑我的邮件(它们是HTML代码)吗?

例如,我有:

$message = getMsgFromTable(Template);

$message的Text类型包含php变量。我可以使用Smarty来填充这个变量吗?

$message = setVariableValueBySmarty($message);

2 个答案:

答案 0 :(得分:7)

Smarty可以获取模板并返回其输出而不是显示它 fetch()方法执行此操作,这就是您所需要的:

  

http://www.smarty.net/docs/en/api.fetch.tpl

文档中还有一段告诉您如何使用它来发送邮件:)

  

http://www.smarty.net/docs/en/api.fetch.tpl#id627712

如果您需要从数据库中创建模板(存储为字符串),请看一下:

  

http://www.smarty.net/docs/en/resources.string.tpl

答案 1 :(得分:1)

请参阅@ lorenzo-s和:

如果您的数据库存储模板包含<?php echo $foo; ?>形式的“PHP变量”(或类似,无关紧要),您可能希望使用prefilter转换<?php echo $foo; ?>{$foo}所以你可以使用Smarty的assign()方法用你的数据填充模板。