第三方短信邮件平台接口规范

为了在用户营销模块使用将第三方短信邮件平台,当您进行第三方短信邮件平台开发时,需要遵守下面的各功能模块接口规范。

添加邮件模板接口

接口描述

添加邮件模板

URL

${prefix}/email/emailTemplate

请求方式

post

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.remark

string

body

模板申请说明。请在申请说明中描述您的业务使用场景,长度为1~100个字符。

2.senderName

string

发送人名称。

3.templateContent

string

模板内容,限制28KB。

4.templateName

string

模板名称,长度为1~30个字符。

5.templateSubject

string

模板标题。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.platformName

string

服务方名称,与接口配置时填写的接口名称一致。

2.code

string

请求状态码。

3.message

string

状态码描述。

4.requestId

string

请求ID。

5.templateCode

string

模板code,用于查看模板申请状态和结果。

示例

请求参数

-d '{"remark":"string","senderName":"string","templateContent":"string","templateName":"string","templateSubject":"string"}'

返回值

{"platformName":"string","code":"string","templateCode":"string","message":"string","requestId":"string"}

修改邮件模板接口

接口描述

修改邮件模板

URL

${prefix}/email/emailTemplate/{templateCode}

请求方式

put

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.remark

string

body

模板申请说明。请在申请说明中描述您的业务使用场景,长度为1~100个字符。

2.senderName

string

发送人名称

3.templateContent

string

模板内容,限制28KB。

4.templateName

string

模板名称,长度为1~30个字符。

5.templateSubject

string

模板标题。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.platformName

string

服务方名称,与接口配置时填写的接口名称一致。

2.code

string

请求状态码。

3.message

string

状态码描述。

4.requestId

string

请求ID。

5.templateCode

string

模板code,用于查看模板申请状态和结果

示例

请求参数

-d '{"remark":"string","senderName":"string","templateContent":"string","templateName":"string","templateSubject":"string"}'

返回值

{"platformName":"string","code":"string","templateCode":"string","message":"string","requestId":"string"}

邮件模板审核状态查询接口

接口描述

邮件模板审核状态查询

URL

${prefix}/email/emailTemplate/{templateCode}

请求方式

get

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.templateCode

string

path

模板code。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.platformName

string

服务方名称,与接口配置时填写的接口名称一致。

2.code

string

请求状态码。

3.createDate

string

模板的创建日期和时间,如:2019-01-08 16:44:13。

4.message

string

状态码描述。

5.reason

string

审核备注。如果审核状态为审核通过或审核中,参数Reason显示为“无审核备注”;如果审核状态为审核未通过,参数Reason显示审核的具体原因。

6.requestId

string

请求ID。

7.templateCode

string

模板code。

8.templateContent

string

模板内容。

9.templateName

string

模板名称。

10.templateStatus

integer(int32)

模板审核状态。

  • 0:审核中。

  • 1:审核通过。

  • 2:审核失败,请在返回参数Reason中查看审核失败原因。

示例

请求参数

无示例

返回值

{"templateStatus":0,"reason":"string","code":"string","templateName":"string","requestId":"string","templateContent":"string","platformName":"string","templateCode":"string","message":"string","createDate":"string"}

邮件发送接口

接口描述

大量邮件发送

URL

${prefix}/email/sendBatch

请求方式

post

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.accountName

string

body

发信地址。

2.addressType

string

地址类型。

  • 0:随机账号。

  • 1:发信地址。

3.clickTrace

string

是否开启数据跟踪功能。

  • 0(默认):关闭数据跟踪功能。

  • 1:打开数据跟踪功能。

4.fromAlias

string

发信人昵称,长度为1~15个字符。例如:发信人昵称设置为”小红”,发信地址为test@example.com,收信人看到的发信地址为"小红"<test@example.com>。

5.subject

string

邮件主题。

6.htmlBody

string

邮件html正文,限制28KB。

7.limit

integer(int64)

发送人数限制。

8.outId

string

外部流水扩展字段。

9.receiversUrl

string

在OSS上传的收件人地址文件的URL。

10.templateCode

string

已创建且通过审核的模板code。fromAlias、subject、htmlBody作为需要同时传入的一组三个参数,若您传入这组参数,则可以不传入templateCode;若您传入templateCode,则可以不传入这组参数。若同时传入四个参数,则以fromAlias、subject、htmlBody为准。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.bizId

string

发送回执ID。

2.platformName

string

服务方名称,与接口配置时填写的接口名称一致。

3.code

string

请求状态码。

4.message

string

状态码描述。

5.requestId

string

请求ID。

示例

请求参数

-d '{"accountName":"string","addressType":"string","clickTrace":"string","fromAlias":"string","htmlBody":"string","limit":0,"outId":"string","receiversUrl":"string","subject":"string","templateCode":"string"}'

返回值

{"bizId":"string","platformName":"string","code":"string","message":"string","requestId":"string"}

邮件发送明细查询接口

接口描述

邮件发送明细查询

URL

${prefix}/email/sendDetails

请求方式

post

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.outId

string

body

外部流水扩展字段。

2.currentPage

integer(int64)

分页查看发送记录,指定发送记录的当前页码。

3.pageSize

integer(int64)

分页查看发送记录,指定每页显示的短信记录数量。取值范围为1~1000。

4.startDate

string

起始时间,与结束时间的跨度不能超出30天,格式yyyy-MM-dd HH:mm。

5.endDate

string

结束时间,与起始时间的跨度不能超出30天,格式yyyy-MM-dd HH:mm。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.platformName

string

服务方名称,与接口配置时填写的接口名称一致。

2.code

string

请求状态码。

3.message

string

状态码描述。

4.requestId

string

请求ID。

5.sendDetailDTOs

array:EmailSendDetailDTO

发送明细。

5.1.accountName

string

发信地址。

5.2.code

string

投递错误码。

5.3.message

string

投递错误码描述。

5.4.outId

string

外部流水扩展字段。

5.5.receiveTime

string

接收日期和时间,10位时间戳。

5.6.status

integer(int32)

投递状态。

5.7.toAddress

string

收信地址。

6.totalCount

integer(int32)

发送总条数。

示例

请求参数

-d '{"outId":"string","currentPage":0,"pageSize":0,"startDate":"string","endDate":"string"}'

返回值

{"platformName":"string","code":"string","message":"string","totalCount":0,"requestId":"string","sendDetailDTOs":[{"accountName":"string","code":"string","message":"string","outId":"string","receiveDate":"string","status":0,"toAddress":"string"}]}

邮件发件箱地址查询接口

接口描述

邮件发件箱地址查询

URL

${prefix}/email/thirdSender

请求方式

get

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.address

string

query

发件箱地址。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.accountName

string

发信地址。

2.accountStatus

integer(int32)

账号状态。

  • 1:冻结。

  • 0:正常。

3.platformName

string

服务方名称,与接口配置时填写的接口名称一致。

4.code

string

请求状态码。

5.createDate

string

创建日期和时间,如:2019-01-08 16:44:13。

6.mailAddressId

string

发信地址ID。

7.message

string

状态码描述。

8.requestId

string

请求ID。

示例

请求参数

address={email}

返回值

{"accountStatus":0,"code":"string","accountName":"string","requestId":"string","platformName":"string","message":"string","mailAddressId":"string","createDate":"string"}

短信请求通用参数

URL参数

含义

示例

timestamp

秒级时间戳

1631865523

nonce

32位随机字符串

2e6eceb5737b473284c930c8ef79090e

请求URL示例:

{第三方短信所有接口的url}?timestamp=1631865523&nonce=2e6eceb5737b473284c930c8ef79090e

Header

含义

说明

X-QA-Hmac-Signature

权鉴签名

开启权鉴时使用,权鉴方式见下文。

未开启权鉴时,该Header填空字符串""。

短信请求权鉴

若短信需要鉴权,请在配置第三方短信接口时开启权鉴并填写密钥,参见新建第三方短信邮件平台接口

QuickAudience会根据用户填写的密钥与URL请求参数timestamp和nonce进行HmacSHA256Hex签名并生成signature,并将此signature通过Request Header传递。您的服务接收到请求后,同样根据URL参数与webhook通道配置的密钥进行HmacSHA256Hex算法加密。如果计算的值与从Request Header中传过来的signature相同,则可以确定是此请求是从QuickAudience发出的,鉴权成功。

参数

含义

示例

key

webhook配置的密钥

123456789

签名算法示例:

public String makeSignature(String key, String timestamp, String nonce) {
   String str = generateStr(key, timestamp, nonce);
    return HmacUtils.hmacSha256Hex(key, str.replaceAll("\\s+", ""));
} 

/**
 * 签名待处理的字符串拼接
 */
public static String generateStr(String key, String timestamp, String nonce){
    String[] array = new String[] { key, timestamp, nonce};
    StringBuffer sb = new StringBuffer();
    // 字符串排序
    Arrays.sort(array);
    for (int i = 0; i < 3; i++) {
        sb.append(array[i]);
    }
    return sb.toString();
}

短信模板审核接口

接口描述

短信模板审核

URL

${prefix}/sms/smsTemplate?timestamp=&nonce=

请求方式

post

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.remark

string

body

短信模板申请说明。请在申请说明中描述您的业务使用场景,长度为1~100个字符。

2.templateContent

string

模板内容,长度为1~500个字符。

3.templateName

string

模板名称,长度为1~30个字符。

4.templateSubject

string

模板主题,长度为1~20个字符。

5.templateType

integer(int32)

短信类型。

  • 0:验证码。

  • 1:短信通知。

  • 2:推广短信。

  • 3:国际/港澳台消息。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.platformName

string

短信服务方名称,与接口配置时填写的接口名称一致。

2.code

string

请求状态码。

3.message

string

状态码描述。

4.requestId

string

请求ID。

5.templateCode

string

短信模板code,用于查看模板申请状态和结果。

示例

请求参数

-d '{"remark":"string","templateContent":"string","templateName":"string","templateSubject":"string","templateType":0}'

返回值

{"platformName":"string","code":"string","templateCode":"string","message":"string","requestId":"string"}

短信模板修改接口

接口描述

短信模板修改

URL

${prefix}/sms/smsTemplate/{templateCode}?timestamp=&nonce=

请求方式

put

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.remark

string

body

短信模板申请说明。请在申请说明中描述您的业务使用场景,长度为1~100个字符。

2.templateContent

string

模板内容,长度为1~500个字符。

3.templateName

string

模板名称,长度为1~30个字符。

4.templateSubject

string

模板主题,长度为1~20个字符。

5.templateType

integer(int32)

短信类型。

  • 0:验证码。

  • 1:短信通知。

  • 2:推广短信。

  • 3:国际/港澳台消息。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.platformName

string

短信服务方名称,与接口配置时填写的接口名称一致。

2.code

string

请求状态码。

3.message

string

状态码描述。

4.requestId

string

请求ID。

5.templateCode

string

短信模板code,用于查看模板申请状态和结果。

示例

请求参数

-d '{"remark":"string","templateContent":"string","templateName":"string","templateSubject":"string","templateType":0}'

返回值

{"platformName":"string","code":"string","templateCode":"string","message":"string","requestId":"string"}

短信签名审核状态查询接口

接口描述

短信签名审核状态查询

URL

${prefix}/sms/smsSign/{signName}?timestamp=&nonce=

请求方式

get

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.signName

string

path

短信签名。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.platformName

string

短信服务方名称,与接口配置时填写的接口名称一致。

2.code

string

请求状态码。

3.createDate

string

短信签名的创建日期和时间,如:2019-01-08 16:44:13。

4.message

string

状态码描述。

5.reason

string

审核备注。如果审核状态为审核通过或审核中,参数Reason显示为“无审核备注”;如果审核状态为审核未通过,参数Reason显示审核的具体原因。

6.requestId

string

请求ID。

7.signName

string

短信签名。

8.signStatus

integer(int32)

签名审核状态。

  • 0:审核中。

  • 1:审核通过。

  • 2:审核失败,请在返回参数Reason中查看审核失败原因。

示例

请求参数

无示例

返回值

{"reason":"string","code":"string","signName":"string","requestId":"string","signStatus":0,"platformName":"string","message":"string","createDate":"string"}

短信模板审核状态查询接口

接口描述

短信模板审核状态查询

URL

${prefix}/sms/smsTemplate/{templateCode}?timestamp=&nonce=

请求方式

get

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.templateCode

string

path

模板code。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.platformName

string

服务方名称,与接口配置时填写的接口名称一致。

2.code

string

请求状态码。

3.createDate

string

模板的创建日期和时间,如:2019-01-08 16:44:13。

4.message

string

状态码描述。

5.reason

string

审核备注。如果审核状态为审核通过或审核中,参数Reason显示为“无审核备注”;如果审核状态为审核未通过,参数Reason显示审核的具体原因。

6.requestId

string

请求ID。

7.templateCode

string

模板code。

8.templateContent

string

模板内容。

9.templateName

string

模板名称。

10.templateStatus

integer(int32)

模板审核状态。

  • 0:审核中。

  • 1:审核通过。

  • 2:审核失败,请在返回参数Reason中查看审核失败原因。

11.templateType

integer(int32)

短信模板类型。

  • 0:验证码。

  • 1:短信通知。

  • 2:推广短信。

  • 3:国际/港澳台消息。

示例

请求参数

无示例

返回值

{"templateStatus":0,"templateType":0,"reason":"string","code":"string","templateName":"string","requestId":"string","templateContent":"string","platformName":"string","templateCode":"string","message":"string","createDate":"string"}

短信发送接口(单条发送)

接口描述

单条短信发送

URL

${prefix}/sms/send?timestamp=&nonce=

请求方式

post

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.limit

integer(int64)

body

发送人数限制。

2.outId

string

外部流水扩展字段。

3.phoneNumbers

string

接收短信的手机号码。

国内短信:11位手机号码,例如159********;国际/港澳台消息:国际区号+号码,例如85200******。

4.signName

string

短信签名名称。

5.templateCode

string

模板code。

6.templateParam

string

短信模板变量对应的实际值,JSON格式。例如:{"name":"TemplateParamJson","age":"age"}

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.bizId

string

发送回执ID。

2.platformName

string

服务方名称,与接口配置时填写的接口名称一致。

3.code

string

请求状态码。

4.message

string

状态码描述。

5.requestId

string

请求ID。

示例

请求参数

-d '{"limit":0,"outId":"string","phoneNumbers":"string","signName":"string","templateCode":"string","templateParam":"string"}'

返回值

{"bizId":"string","platformName":"string","code":"string","message":"string","requestId":"string"}

短信发送接口(批量发送)

接口描述

大量短信发送

URL

${prefix}/sms/sendBatch?timestamp=&nonce=

请求方式

post

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.limit

integer(int64)

body

发送人数限制。

2.outId

string

外部流水扩展字段。

3.phoneOssUrl

string

接收短信的手机号码文件所在的OSS路径。文件格式txt。

国内短信:11位手机号码,例如159********;国际/港澳台消息:国际区号+号码,例如85200******。每个号码一行。变量短信会在每行手机号后面加上变量名称与替换值内容。例如:{"name":"TemplateParamJson","age":"age"}

4.signName

string

短信签名名称。

5.templateCode

string

模板code。

6.isVariable

integer(int64)

是否是变量短信。

  • 0:不是变量短信。

  • 1:是变量短信。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.bizId

string

发送回执ID。

2.platformName

string

服务方名称,与接口配置时填写的接口名称一致。

3.code

string

请求状态码。

4.message

string

状态码描述。

5.requestId

string

请求ID。

示例

请求参数

-d '{"limit":0,"outId":"string","phoneOssUrl":"string","signName":"string","templateCode":"string","isVariable":"string"}'

返回值

{"bizId":"string","platformName":"string","code":"string","message":"string","requestId":"string"}

短信发送明细查询接口

接口描述

短信发送明细查询

URL

${prefix}/sms/sendDetails?timestamp=&nonce=

请求方式

post

请求类型

application/json

返回类型

*/*

参数名

数据类型

参数类型

是否必填

说明

1.outId

string

body

外部流水扩展字段。

2.currentPage

integer(int64)

分页查看发送记录,指定发送记录的当前页码。

3.pageSize

integer(int64)

分页查看发送记录,指定每页显示的短信记录数量。取值范围为1~1000。

4.startDate

string

起始时间,与结束时间的跨度不能超出30天,格式yyyy-MM-dd HH:mm。

5.endDate

string

结束时间,与起始时间的跨度不能超出30天,格式yyyy-MM-dd HH:mm。

状态码

描述

说明

200

OK

请求成功。

401

Unauthorized

请求未经授权。

403

Forbidden

请求被拒绝。

404

Not Found

请求的资源不存在。

返回属性名

类型

说明

1.platformName

string

短信服务方名称,与接口配置时填写的接口名称一致

2.code

string

请求状态码。

3.message

string

状态码描述。

4.requestId

string

请求ID。

5.sendDetailDTOs

array:SmsSendDetailDTO

短信发送明细。

5.1.content

string

短信内容。

5.2.errCode

string

运营商短信状态码。短信发送成功:DELIVERED。短信发送失败:给出错误码。

5.3.outId

string

外部流水扩展字段。

5.4.phoneNum

string

接收短信的手机号码。

5.5.receiveDate

string

短信接收日期和时间。

5.6.sendDate

string

短信发送日期和时间。

5.7.sendStatus

integer(int64)

短信发送状态。

  • 1:发送失败。

  • 2:发送成功。

5.8.templateCode

string

短信模板ID。

6.totalCount

integer(int32)

短信发送总条数。

示例

请求参数

-d '{"outId":"string","currentPage":0,"pageSize":0,"startDate":"string","endDate":"string"}'

返回值

{"platformName":"string","code":"string","message":"string","totalCount":0,"requestId":"string","sendDetailDTOs":[{"content":"string","errCode":"string","outId":"string","phoneNum":"string","receiveDate":"string","sendDate":"string","sendStatus":0,"templateCode":"string"}]}

阿里云首页 智能用户增长 相关技术圈