如何在Tectite Form mail邮件模板中传递并展示动态数组内容
Tectite Form Mail 动态数组传递到模板的实现方案
Tectite 原生实现步骤
Tectite Form Mail 本身支持自定义变量传递与模板解析,可通过以下操作实现需求:
- PHP脚本侧做数组扁平化处理
Tectite 默认不支持直接传递数组类型变量,需要先将动态数组拆分为带统一前缀的独立键值对,同时加入合法输入白名单,参考代码:// 你的动态数组 $custom_data = [ 'order_id' => '20240521001', 'amount' => '199.00', 'pay_status' => '已支付' ]; // 遍历生成带前缀的表单变量 foreach ($custom_data as $key => $value) { $_POST['custom_'.$key] = $value; // 加入Tectite合法输入白名单 $VALID_HTML_INPUTS[] = 'custom_'.$key; } - 模板侧解析输出变量
若你使用的Tectite版本支持内置模板遍历语法,可直接在example1.email.html中过滤带前缀的变量批量输出:<div class="custom-data"> <h3>订单信息</h3> <table border="1" cellpadding="5"> {foreach from=$ALL_FIELDS item=field} {if str_starts_with($field.name, 'custom_')} <tr> <td>{$field.name|replace:'custom_':''}</td> <td>{$field.value}</td> </tr> {/if} {/foreach} </table> </div>低版本Tectite不支持遍历语法,需提前将所有可能出现的数组键预定义到模板中,用
$custom_键名格式的占位符逐个输出。
替代工具推荐
若Tectite的能力无法满足你的灵活解析需求,可使用以下更通用的邮件处理工具:
- PHPMailer:轻量级PHP邮件发送库,无框架依赖,可搭配任意PHP模板引擎(如Twig、Smarty、原生PHP模板)完成数组解析渲染后再发送邮件,自由度高。
- Symfony Mailer:适合Symfony生态项目,与Twig模板深度集成,支持直接传递任意类型的变量、数组到模板,语法更简洁。
内容的提问来源于stack exchange,提问作者Webdev
相关产品推荐
相关产品推荐

