事件通知模块,用于定义当系统中发生某些事件(如:收到新留言,评论,表单提交,订阅等)时,执行一些对应的动作,比如发送邮件通知,短信通知,或者通过webhook将通知发送到第三方平台,如钉钉。
动作定义使用的是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中的参数和通知内容,都支持动态绑定,语法与模板语法相同