旺司OA免费邮件、微信公众号消息提醒配置搭建:自动发送系统流程通知到手机
OnceOA 企业办公 by wx_15926 on 1589329764599


OnceOA 提供多种消息通知方式,其中以邮件和微信消息通知最为常用。

OnceOA 启用流程通知

以 OnceOA 的流程系统启用通知为例,

以我们制作的公章申请的数据库定义扩展为例, 在编辑数据库扩展的"流程管理"时,可勾选“发送通知”选项。

  1. 选中要发送邮件和微信通知的流程结点
  2. 在“组织、团队”中,选择 “市场部”作为处理人
  3. 这里选择组管理员来审批

为防止滥发信息,这里只会对当前选中的处理人组织/团队发送流程通知,而不会通知父级或子级成员。

msg_1.png

设置之后点击保存即可,这样当数据创建完毕之后,会自动触发“部门审批”流程通知。

有时侯,我们可能并不希望提交申请表时就发送通知,此时可以添加一个“提交申请”的空结点。

选中原来流程之间的连线,然后点击“删除选中”,并按下Shift + 鼠标左键创建一个空结点。填入相关信息,处理人留白即可,如下图所示。

msg_2.png

这样,当用户创建完数据后,只有点了“提交审批“才会通知下个流程的处理人。

这里与过滤函数的处理机制不同,过滤函数只有当处理人审批时才会执行,比如更新关联数据等。而流程通知会在上一个节点时触发。

触发邮件、微信通知

以上文中的例子,假设我们在公章申请的数据库定义流程中, 勾选了发送通知。 从管理桌面的开始菜单点击 “OnceOA 数据管理“ 找到刚才修改的的公章申请表,并添加一条新数据。

  1. 点击保存后,会出现流程处理按钮
  2. 再点击“提交申请”

msg_9.png

此时会触发邮信和微信的流程消息提醒:

msg_5.png

微信中接收到的消息提醒如下。

msg_10.jpg

下面我们来介绍一下,如何配置邮件和微信提醒。

配置邮件提醒

邮件提醒可连接第三方SMTP邮件服务器来发送,可在私有云环境下部署。目前有很多邮件服务提供商提供免费的SMTP发信服务,不过对发信数量会有一定的限制。

下面我们介绍如何使用QQ邮箱来发送邮件通知。

开启SMTP

登录QQ邮箱后,点击设计 -> 帐户,然后找到 POP3/SMTP 选项。

  1. 点击 POP3/SMTP 后的“启用”
  2. 按弹出对话框提示,发送短信,并点击保存。

msg_3.png

保存之后,你会得到一个SMTP服务的连接密码,复制并记住这个密码。

msg_4.png

也有很多服务商的SMTP密码即为邮箱密码,仅需开启SMTP即可。

配置OnceOA邮件服务

打开 /onceai/oncedoc/config.js 配置文件,找到 MAIL_CONFIG 部分,并做如下修改:

var MAIL_CONFIG = {
    domain      : ''
  , smtpPort    : 465
  , smtpSecure  : true
  , smtpHost    : 'smtp.qq.com'
  , smtpUser    : '1662568808@qq.com'
  , smtpPass    : 'zgsyXXXXXXXXfhhi'
}

smtpSecure: true 代表启用加密连接,对应的 smtpPort 端口号为 465,否则一般为 25 smtpHost 为QQ邮箱的SMTP服务器地址 smtpUser 为QQ邮箱帐号 smtpPass 为上文获取的SMTP密码

domain 为在公有云环境下启用 OnceOA 自带邮件服务器,需要安装 mail 模块,该模块暂未开放。经过一段时间的测试,如果不是知名域名或企业,自建邮件服务器发信被拒收的比率较高,而且收到的垃圾邮件也较多,这里邮箱域名留白即可。如果需要自建邮件服务器,可与我们联系。

配置完成后,重启 OnceOA 即可启用邮件通知。

配置微信提醒

推送微信提醒,需要部署到公有云服务器上。微信提醒需要开通微信公众号并完成微信认证。

创建微信模板

微信消息都需要通过模板推送,我们主要使用邮件通知的模板。

登陆微信公众号,点击模板消息,添加邮件模板,如下图所示。

创建后记住模板ID(TemplateID)备用。

msg_6.png

配置微信接口

点击公众号平台最下方找的 开发-》基本配置,记录以下信息:

开发者ID(AppID) 开发者密码(AppSecret) 令版(Token)

服务器地址(URL) 填入您的网址回调地址: 这里为域名 + /wechat-auth/api 固定网址, 如 http://onceoa.com/wechat-auth/api 因为我们使用明文模式,因此不需要填写消息加解密密钥。

msg_7.png

配置OnceOA微信模块

打开 /onceai/oncedoc/config.js 配置文件,找到 WEIXIN_AUTH_CONFIG 部分,将公众号中信息,写入到配置文件中:

var WEIXIN_AUTH_CONFIG = {
    AppID       : 'wx7eXXXXXXX1aec7'
  , AppSecret   : '9ecfa1aXXXXXXXXX75e8b6d14'
  , MchID       : 140XXXX02
  , TemplateID  : 'zLo4j7XPXXXXXXXXXbbloMuirPE'
  , token       : 'daXXXXXXXXXXXXXlk8643'
  , fileFormat  : 'yyyy-mm'
}

MchID 为开通微信支付的商户号,没有使用到支付功能可不填。 至此完成微信的全部配置,只需要安装 wechat/ wechat-sign 两个模块,即可自动推送微信消息。

分布式部署下的微信消息推送

如果您有多个 OnceOA 应用想要共用一个公众号来扫码登录、注册、推送消息、完成支付等。

但这些应用分别部署到了多台服器务上,或者您想在本地私有云服务器中也使用公众号的这些功能。

那么有两种办法可以实现此需求。

假设我们在公有云服务器上部署了 OnceOA 应用,域名为 cn.oncedoc.com,该应用安装了微信模块,并连接了公众号后台。

1. 连接同一 OnceDB 数据库

修改 /onceai/oncedoc/config.js 中的 ONCEDB_CONFIG 配置, 连接到 cn.oncedoc.com 的 OnceDB 数据库。即多个应用连接到同一 OnceDB, 实现分布式部署。

还需要在 WEIXIN_AUTH_CONFIG 添加一条 disable: true 属性,防止多个应用同时刷新公众号后台,造成混乱,微信配置的其它属性保持不变。

var WEIXIN_AUTH_CONFIG = {
    ...
  , disabled    : true
}

var ONCEDB_MESSAGER = {
    port    : 6400
  , host    : 'cn.oncedoc.com'
  , auth    : 'dXXXXXXXXXXXXXXXXXXXXXX00'
  , select  : 1
}

连接前首先要确保 cn.oncedoc.com 上的 OnceDB 数据库是允许外网访问的。

将 /onceai/oncedb/oncedb.conf 中的 bind 127.0.0.1 只允许本机访问注释掉,并设置 requirepass 访问密码即可。

#bind 127.0.0.1
requirepass dXXXXXXXXXXXXXXXXXXXXXX00

2. 设置 ONCEDB_MESSAGER 消息服务器

有时侯我们可能并不希望多个应用共用远程数据库,而是希望使用本地独立的数据库系统,来提高访问速度和可靠性。

此时可修改 config.js 中的 ONCEDB_MESSAGER 配置,连接公有云上的 OnceDB 数据库,如下图所示:

msg_8.png

OnceOA 还可通过 messagerdb 实现多个 OnceOA 进程间的相互通信、消息传递和事件推送。

扩展:邮件营销系统

借助 OnceOA 数据流程通知,您甚至可以自己搭建电子邮件营销系统,这在以后的文章中会详细介绍。