邮件插件简介

发布版本:1.88

不同的客户的邮件供应商可能都不同,DMHub支持通过插件形式发送邮件。您可以通过插件满足系统现有所有功能,比如群发邮件,自动流程发送邮件,测试发送邮件, 发送量发送速率管控等等。做到这些您的插件需要提供两个接口: 1.群发邮件接口 2.创建模版接口以及调用DMHub的 发送邮件回执接口 以完成发送状态上报。

安全说明

由于DMHub可能是通过公网访问邮件插件的接口,因此需要一定的安全校验。目前插件支持两种安全校验。

1.生成签名: DMHub在请求插件接口时会带有以下parameters

    POST ${url}/email/batch?appId=${appId}&timestamp=${timestamp}

parameters说明

名称类型描述实例
urlString在邮件插件平台中配置的插件服务地址http://localhost:1234/
appIdString在邮件插件平台中配置的appIdcl001116d62
timestampString当前时间,格式为yyyyMMddHHmmss,时间为UTC时间20210308131501

2.阿里云api gateway:

该方式只需要在插件平台正确的配置阿里云网关的appKey和appSecret即可。详细请见阿里云网关

插件接口说明

1.群发邮件接口

格式

POST ${url}/email/batch

请求体

DMHub的邮件有模版的概念,模版内以客户的属性或身份作为变量,通过模版+属性变量的方式来达到每个人收到的邮件都可能不一样的效果。而有些客户认为的敏感信息是不会存储在DMHub 中,比如手机号码、家庭住址等等,而插件可以获取到这些敏感信息。这时候就需要在插件内部组装模版+变量。

{
  "templateId": "123",
   "batchId": "1223",
   "audienceIdType": "email",
   "domain":"dmhub.com.cn",
   "data": [
       {
           "_audienceId": "xxxx@convertlab.com",
           "var1": "1234556" ,
           "name": "Michael",
           "其他变量": "其他变量的值",
           "attr": {
               "attr1": "1234",
               // 其他自定义字段
           }
       }
   ]
}

参数说明

名称类型描述
templateIdString邮件模版ID
batchIdString发送批次号
audienceIdTypeString触达类型
dataList参数列表
_audienceIdString触达ID
var1String自定义的变量名称
attrMap客户自定义属性
name@3String客户姓名

接口返回

插件内部发送邮件最好是异步发送,通过一些消息组件做到降低接口延迟,提高并行度。

在接口处理成功时需要返回

{"code":"SUCCESS"}

在接口处理失败后需要按照标准错误格式返回,例如:

{"error":{"code":"400001","message":"invalid signature"}}

2.创建邮件模版接口

格式

POST ${url}/email/template

请求体

{
	"templateId": "123",
	 "templateContent": "test send",
	 "emailType": "notify/market",
	 "subject": "convertlab营销邮件",
	 "fromName": "wyp",
	 "aliasName": "王先生"
}

参数说明

名称类型描述
templateIdString邮件模版ID
templateContentString内容
emailTypeString类型notify=通知,market=营销
subjectString标题
fromNameString发送方
aliasNameString别名

接口返回

在接口处理成功时需要返回

{"code":"SUCCESS"}

在接口处理失败后需要按照标准错误格式返回,例如:

{"error":{"code":"400001","message":"invalid signature"}}

3.发送邮件插件回执

格式

POST http://api.xxx.cn/v1/sms/report?access_token={access_token}

请求体

   {
      "type":"email",
      "reports":
           [{
                    "audienceId": audienceId,
                    "batchId"   : batchId,
                    "receiveDate" : "2019-04-28 16:28:34",
                    "event "      : "email_delivered",
                    "receiver "   : "接受者邮件", //可选
                    "errorMessage": "接收成功",
                    "errorCode"   : "400"
             }]
   }

参数说明

名称类型描述
typeString回执类型
reportsList回执业务体
audienceIdString触达ID
batchIdString批次id
receiveDateDate收件时间
eventString事件
receiverString收件人
errorMessageString失败原因
errorCodeString失败编码

接口返回

在接口处理成功时需要返回

{"code":"SUCCESS"}

在接口处理失败后需要按照标准错误格式返回,例如:

{"error":{"code":"400001","message":"invalid signature"}}

系统通知

发布版本:2.5

系统通知邮件可以支持通过插件发送,实现邮件通道的定制。该功能的实现需要开启相应的功能开关。

邮件通知接口

格式

POST ${url}/email/plugin/send

请求体

发送系统通知需要您的插件具备模版类型。通知模版示例、模版类型和对应的变量请下载文件进行查看。模版下载

例如:租户即将到期通知 { "name": "12", "tenantId": "10113", "dateEnd": "2022-03-10", "emailTemplateType": "TenantExpiring" }

参数说明

名称类型描述
nameString租户名称
tenantIdint租户Id
dateEndString到期时间
emailTemplateTypeString模版类型