
目前邮件营销仍是外贸电商主要的营销方式,但是,被扔进垃圾邮件仍很常见问题。
那么如何才能解决呢?
因此做好邮件营销并不容易,个性化内容是关键。在旺司OA中,您可以配置出一个免费的个性化邮件发送系统。在设计此系统前,需要您已经完成了 OnceOA 的邮件发送配置。
这篇文章仅面向有一定经验的开发者,教您如何在 OnceOA 搭建邮件营销平台,如果想直接上手使用的话,可以参考下面这篇回答。
在 OnceOA 管理桌面中,进入 OnceDoc:
字段名称字段标题字段类型说明id编码自增数字设置为ID字段,开始值为: CUST1001name姓名文本workflow流程状态隐藏在列表中显示流程处理状态,但不可编辑,需要与流程处理的字段名称一致email邮箱文本
效果如下图所示:
如上图所示,我们可以在自定义JSON添加邮箱不可重复的约束,这样就能防止导入重复的邮箱。
这里我们将创建邮件模板和邮件发送流程,如下图所示, 出于简单考虑,我们将页脚作为邮件模板使用。
在发送邮件时,我们会以当前数据填充邮件模板,在邮件模板中可使用 {变量名} 的显示这些数据,比如 {name} 为上文定义的姓名字段。
下面是我们编写的邮件模板内容:
启用流程管理,在流程管理中,创建一个新的“发送邮件”节点。
OnceOA 中可通过过滤函数实现高自由度的二次开发。您在数据查看、编辑、删除、列表和流程过程中执行过滤函数。
过淲函数中内置了一些上下文对象。
对象名称说明this.req当前的request对象,比如 req.sessoin.user 访问当前用户this.res当前的response对象this.extension当前的数据库扩展定义上下文,extension.footer 可访问到页脚
您可以通过 console.log 来调试过滤函数,双击“发送邮件”流程节点,编写如下过滤函数:
在Windows版本下,在托盘图标上右键,选择 OnceOA Web Service -> 显示,可打开命名行终端。
然后您在 OnceOA 数据管理中,添加一条客户管理数据,然后点击 “发送邮件流程”,则会输出该流程函数下的日志信息,如下图所示:
命令行中是相关高度信息,比如执行了哪些 Filter/ Handler,调用的文件、行号位置,以及模块相关的输出的信息, 比如 “Attend -1” 就是自动签到模块显示的签到日志。
在 OnceOA 中,只要您完成邮件配置,您就可以直接调用 OnceDoc.sendMail 来发送邮件。字符串可使用 format 方法来填充数据。
在过滤函数中可直接抛出异常提示给前端,我们这里添加了对 email 是否为穿的检查,最终效果如下:
从管理桌面菜单中,打开 "OnceOA 数据管理“ ,点击客户管理。
我们添加一条客户信息,邮箱留白,然后保存。
点击 ”发送邮件“ 此时流程过滤函数会抛出邮件为空异常,然后中止流程状态的改变,如下图所示。
填写好邮件,再次点击发送,此时您的手机就会收到相关通知,如下图所示。
在显示数据列表时,您可通过批量流程操作,执行邮件发送程序。
如下图所示,当遇到空邮件错误时,发送过程会中止,您可以筛选下数据继续发送。
有时侯您可能想发送一些更富表现的图文邮件给用户,此时可使用 HTML 文件,作为邮件模板。
在 OnceDoc 中选择一个文件目录,上传HTML邮件模板,注意相关文件夹的权限设置。如果用户没有这些目录的权限,他是无法发送这些HTML邮件模板的。
OnceDoc 支持在线编辑HTML文件和预览。
在流程函数中,可使用 OnceDoc.readFileAsync 方法来读取 OnceDoc 的文件中的文件,传入参数中为 req 来判断当前用户是否有权限,路径为 OnceDoc 中的相对路径, 如刚才上传的文件路径为:
再次编辑“发送邮件”中的流程过滤函数,填入
手机中接收到的邮件效果如下:
在上文中我们已经制作了一个邮件营销的例子,我们可以把它把打包成 OnceOA 模块。方便他人安装使用。
这里我们将其命名为 email.s1。
在 /onceai/oncedoc/mod 目录下创建一个 email.s1 文件夹,然后创建若干文件和文件夹。
文件(夹)名称说明操作.sys.schema存放数据据扩展库扩展,在 OnceDoc 会自动显示为 “数据库模式”将我们制作的"客户管理"数据库定义放到此目录template存放邮件模板将我们上传的HTML邮件模板放到此目录,并重命名为 template1.html/ template2.htmlweb静态web文件夹目录将邮件模块图标放到此目录email.s1.js模块入口文件放量少量后端代码package.json模块定义文件定义模块名称、图标、入口文件等
目录结构如下图所示:
我们首先编写模块入口文件,email.s1.js,这里使用了一些全局对象:
定义好的入口文件代码如下:
参数解释:
package.json 定义了模块描述、入口文件、图标等,代码如下:
至此已经完成了模块 email.s1 的定义。
完成模块定义后,重启 OnceOA, 打开应用管理,找到定义的 email.s1,点击启用。
启用后在已安装模块中,在桌面和应用中心中可以看到 email.s1,如下图:
因为在 OnceOA.add 中设置了 oncedoc 目录映射,OnceDoc 左侧目录中会出现 "邮件营销“ 的模块目录。
现在可以直接在 OnceDoc 中调整数据库定义。
点击编辑: 数据库模式 -> 客户管理 -> 客户管理.oncedb
添加两个新的流程节点,分别选择过滤函数 sendTmpl1 和 sendTmpl2。
注册,在 OnceDoc 中编辑后台代码或数据库扩展时都要重启 OnceOA 服务器。
在桌面上点击 "邮件营销" 图标,添加两条数据,在数据列表和数据编辑界面,会看到定义的发送邮件1,和发送邮件2 流程操作。
现在模块已经定义完成,您可以钭 email.s1 打包成 zip 文件,然后在其它 OnceOA 的应用中心上传即可。
该应用已经打包到应用中心,大家下载 OnceOA 后,可以应用中心-》浏览,免费下载。
