javascript - 如何使用 HTML 创建 netsuite 电子邮件模板并在其中使用 freemaker 来访问用户数据

标签 javascript html freemarker netsuite

您好,我正在尝试使用 HTML 在 netsuite 中创建一个电子邮件模板,并且我想在其中显示 **嗨,客户 **姓名****。为了实现这一目标,我认为我们必须使用 freemarker 。谁能帮我如何在 html 中编写 freemarker 代码。

<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; margin-top:0;">Dear <h1>${contact.firstName}</h1>,</p>

在此代码中,我想打印客户的名字而不是代码本身。

最佳答案

这样就可以了。 您有多种生成 html 的选项。

如果您通过 nlapiCreateEmailMerger 使用 nlobjEmailMerger,您将生成一个标准电子邮件模板;用 freemarker 和静态标记填充它,然后合并并发送它。

为了您的使用,您会执行以下操作:

var merger = nlapiCreateEmailMerger(templateId); // templateId from a script parameter
merger.setEntity('contact', contactId);
var result = merger.merge();
nlapiSendEmail(fromId, contactId, result.getSubject(), result.getBody());

请注意,当您创建模板时,Netsuite 会验证代码,以便您只能使用标准记录。我在使用自定义记录时遇到了问题,或者当我想要添加搜索结果时遇到了问题

使用免费标记生成电子邮件的另一种方法是使用 nlobjTemplateRenderer。

这允许您提供任意文本作为模板,并在唯一键下包含记录和搜索结果。

例如

var renderer = nlapiCreateTemplateRenderer();
renderer.setTemplate("<p style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; margin-top:0;">Dear <h1>${contact.firstName}</h1>,</p>"); // from a file maybe
renderer.addRecord('contact', nlapiLoadRecord('contact', contactId));
nlapiSendEmail(fromId, contactId, "Email Subject", renderer.renderToString());

关于javascript - 如何使用 HTML 创建 netsuite 电子邮件模板并在其中使用 freemaker 来访问用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38872578/

相关文章:

html - 如何更改 li 元素的背景颜色

java - 替换的 freemarker 模板字段中不需要的引号

javascript - Chart.js 零处理

javascript - '类型错误 : is not a function' in Node. js

javascript - jQuery UI 可对整个 div 进行排序

c# - HTML anchor 替换为 RegEx

javascript - HTML 选择标签与 Javascript

javascript - 使用开始和结束日期的谷歌折线图

javascript - 为什么使用 location.reload() 时我的页面没有刷新?

java - Freemarker 中的默认转义