概念/述语
从这里开始
数据库
开发入门
程序扩展
使用介绍
其它

事件通知模块,用于定义当系统中发生某些事件(如:收到新留言,评论,表单提交,订阅等)时,执行一些对应的动作,比如发送邮件通知,短信通知,或者通过webhook将通知发送到第三方平台,如钉钉。

发送Http请求

动作定义使用的是YAML语法对执行的动作进行描述,例如下面是一个发送Http请求的简单示例

actions:
- name: http request (web hook)
  uses: actions/http
  with:
    request: |
      POST https://oapi.dingtalk.com/robot/send?access_token=47bcd4xxxx1615bafb436854557
      Content-Type: application/json
      
      {"msgtype": "text","text": "收到新留言"}

如果request的内容非常复杂,可以先创建一个“通知内容”并将http请求内容放入其中,然后使用requestContentId进行关联,例如动作定义:

actions:
- name: http request (web hook)
  uses: actions/http
  with:
    requestContentId: 2

通知内容:

POST https://oapi.dingtalk.com/robot/send?access_token=47bcd4xxxx1615bafb436854557
Content-Type: application/json
      
{"msgtype": "text","text": "收到新留言"}

发送邮件

发送邮件通知时,使用actions/email,例如:

actions:
- name: send email
  uses: actions/email
  with:
    subject: 这是一封邮件
    to: hello@zkea.net
    cc: wayne@zkea.net
    bcc: yoyo@zkea.net
    body: Hello,很高兴认识你

当邮件内容比较复杂时,可以使用bodyContentId替换body,例如:

actions:
- name: send email
  uses: actions/email
  with:
    subject: 确认取消订阅
    to: {{this.Model.Subscriber.Email}}
    bodyContentId: 6

然后创建一个通知内容:

<div style="text-align: center;">
    <h3>
        取消订阅我们
    </h3>
    <p>点击下方链接取消订阅</p>
    <a href="{{this.Model.Url}}">{{this.Model.Url}}</a>
</div>

通知内容为邮件内容时也可同时包含收件人等信息,例如动作定义可以简化为:

actions:
- name: send email
  uses: actions/email
  with:
    bodyContentId: 6

通知内容包含收件人等信息:

subject: 确认取消订阅
to: anyone@zkea.net
cc: chaosong@zkea.net
bcc: misong@zkea.net

<div style="text-align: center;">
    <h3>
        取消订阅我们
    </h3>
    <p>点击下方链接取消订阅</p>
    <a href="{{this.Model.Url}}">{{this.Model.Url}}</a>
</div>

注意:with中的参数和通知内容,都支持动态绑定,语法与模板语法相同

相关文档

微信公众号