如何通过Mautic API发送含自定义礼品名称与价格的邮件?
如何通过Mautic API在发送邮件前添加自定义礼品信息
嘿,这个需求完全可以实现!Mautic的API提供了两种实用的方式来动态注入自定义文本,刚好匹配你的礼品通知场景,我给你一步步讲清楚:
方案一:自定义联系人字段+邮件令牌(推荐长期复用)
如果这个礼品信息后续还会用到,或者需要关联到联系人数据里,这个方法最规范:
先在Mautic后台创建自定义字段
进入联系人字段管理,新增两个字段:- 字段类型:文本,别名设为
gift_name(显示名称可以叫“礼品名称”) - 字段类型:文本/数字,别名设为
gift_price(显示名称可以叫“礼品价格”)
- 字段类型:文本,别名设为
在邮件模板里插入对应令牌
编辑你的通知邮件模板,在需要显示礼品信息的位置插入:您获得的礼品是:{contactfield=gift_name},价格:{contactfield=gift_price}元调用API时先更新联系人字段,再发送邮件
修改你的现有代码,先更新联系人的自定义字段值,再触发邮件发送:// 准备要设置的礼品数据 $giftData = [ 'fields' => [ 'gift_name' => '限量版星空保温杯', // 替换为实际礼品名称 'gift_price' => '199.00' // 替换为实际价格 ] ]; // 更新指定联系人的字段 $contactApi->edit($contactId, $giftData); // 再发送邮件,此时邮件会自动替换令牌为对应值 $response = $emailApi->sendToContact($emailId, $contactId);
方案二:直接传递动态参数(适合临时/一次性场景)
如果不想修改联系人的永久数据,只是临时给这封邮件加内容,用这个更灵活:
Mautic的sendToContact方法支持第三个参数$data,可以直接传入自定义变量,然后在模板里调用:
修改邮件模板,添加变量占位符
在邮件里需要显示信息的位置插入:您获得的礼品是:{var:gift_name},价格:{var:gift_price}元调用API时传入自定义数据
直接在发送邮件的方法里加第三个参数:// 准备自定义礼品数据 $customParams = [ 'gift_name' => '限量版星空保温杯', 'gift_price' => '199.00' ]; // 发送邮件时传入参数,模板会自动替换变量 $response = $emailApi->sendToContact($emailId, $contactId, $customParams);
几个要注意的小细节
- 令牌/变量的拼写要完全一致,Mautic对大小写敏感!
- 方案一中的字段别名要和代码里的
gift_name/gift_price对应,别用显示名称代替。 - 测试时可以先手动调用一次API,检查邮件内容是否正确渲染,避免拼写错误导致内容不显示。
内容的提问来源于stack exchange,提问作者Daniel Santos
相关产品推荐
相关产品推荐

