//GET请求示例发送 “hello world”主题邮件
Request URL:
https://api.itniotech.com/email/batchSendEmail?appId=fKFtblIy&fromEmailAddress=test@mailpush.itnio.cn&receiverId=1000&subject=helloWorld&templateID=1&url=https://IP:port/task/email/notice&adFlag=1&triggerID=10&language=en
Request Method:
GET
Request Headers:
Content-Type: application/json;charset=UTF-8
Sign: 05d7a50893e22a5c4bb3216ae3396c7c
Timestamp: 1630468800
Api-Key: bDqJFiq9
//POST请求示例发送 “hello world” 内容:
Request URL:
https://api.itniotech.com/email/batchSendEmail
Request Method:
POST
Request Headers:
Content-Type: application/json;charset=UTF-8
Sign: 05d7a50893e22a5c4bb3216ae3396c7c
Timestamp: 1630468800
Api-Key: bDqJFiq9
Request Body:
{
"appId":"fKFtblIy",
"romEmailAddress":"test@mailpush.itnio.cn",
"receiverId":"1000",
"subject":"hello world",
"templateID":"1",
"url":"https://IP:port/task/email/notice",
"adFlag":0,
"triggerID":10,
"language":"en",
"isUnsubscribe":1
}
参数 | 说明 | 类型 |
---|---|---|
status | 状态码,0成功,其他失败参见邮件响应状态码说明 | String |
reason | 失败原因说明 | String |
taskId | 任务ID | String |
注:提交发送邮件成功后,系统会给一个任务ID,根据回调地址程序会进行发送信息的推送。
参数 | 说明 | 类型 |
---|---|---|
taskId | 任务ID | String |
emailId | 提交邮件对应平台emailId | String |
toAddress | 提交收件人地址 | String |
emailState | 提交状态:失败、成功 | String |
remark | 成功/失败描述 | String |
说明:大批量发送邮件时,单个邮件提交完成后,ITNIO TECH将以消息通知的方式,传递到回调地址。
status | 状态说明 |
---|---|
0 | 成功 |
-1 | 身份验证错误 |
-2 | 重复请求 |
-4 | 用户锁定 |
-6 | 时间戳过期 |
-8 | 限制IP访问 |
-9 | 发送地址不能为空 |
-10 | 发信地址未在ITNIO平台配置 |
-11 | 模板不存在 |
-12 | 模板状态不正确 |
-13 | 收件人地址不能为空 |
-16 | 收件人列表不存在 |
-17 | 邮件主题不能为空且字符限制一百以内 |
-19 | 账户余额不足,请及时充值 |
-20 | 资费包额度不足,请及时购买 |
-21 | 没有可用套餐,暂不能发送邮件 |
-22 | 接口异常 |
-23 | 端口或者程序异常 |
-24 | 您的账号未验证,请验证! |
-25 | 模板ID只能为整数 |
-26 | 没有分配客户经理。请与客服人员联系 |
-27 | 广告标志参数无法识别 |
-29 | 回调url不能为空 |
-30 | TriggerID错误 |
Java
PHP
Curl
Python
REQUEST
import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import java.time.LocalDateTime;
import java.time.ZoneId;
public void batchSendEmail(){
final String baseUrl = "https://api.itniotech.com/email";
final String apiKey = "your api key";
final String apiPwd = "your api secret";
final String appId = "{{appId}}";
final String fromEmailAddress = "{{fromEmailAddress}}"; // The Mail address configured in the ITNIO
final String receiverId = "{{receiverId}}"; //Recipient List ID
final String subject = "{{subject}}"; //Send Message Subject
final String templateID = "{{templateID}}"; //Send Template ID
final String url = "{{url}}"; //Callback URL
final int adFlag = "{{adFlag}}"; //Whether to add the advertising logo
final String language = "{{language}}"; //language
final int triggerID = "{{triggerID}}"; //Automation trigger id
final String requestUrl = baseUrl.concat("/batchSendEmail");
final int isUnsubscribe = "{{isUnsubscribe}}";
HttpRequest request = HttpRequest.post(requestUrl);
// currentTime
final String datetime = String.valueOf(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond());
// generate md5 key
final String sign = SecureUtil.md5(apiKey.concat(apiPwd).concat(datetime));
request.header(Header.CONNECTION, "Keep-Alive")
.header(Header.CONTENT_TYPE, "application/json;charset=UTF-8")
.header("Sign", sign) //Signature with encryption
.header("Timestamp", datetime) //Current system time stamp (second)
.header("Api-Key", apiKey); //API KEY(Home-Developer options)
final String params = JSONUtil.createObj()
.set("appId", appId)
.set("fromEmailAddress", fromEmailAddress)
.set("receiverId", receiverId)
.set("subject", subject)
.set("templateID", templateID)
.set("url", url)
.set("adFlag", adFlag)
.set("triggerID",triggerID)
.set("language", language)
.set("triggerID",triggerID)
.set("isUnsubscribe", isUnsubscribe)
.toString();
HttpResponse response = request.body(params).execute();
if (response.isOk()) {
String result = response.body();
System.out.println(result);
}
}
REQUEST
header('content-type:text/html;charset=utf8');
$apiKey = "your api key";
$apiSecret = "your api secret";
$appId = "your appid";
$timeStamp = time();
$sign = md5($apiKey . $apiSecret . $timeStamp);
$fromEmailAddress = urlencode("{{fromEmailAddress}}");
$receiverId = "{{receiverId}}";
$templateID = "{{templateID}}";
$subject = urlencode("{{subject}}");
$backUrl = urlencode("{{url}}");
$language = "{{language}}";
$adFlag = "{{adFlag}}";
$triggerID = "{{triggerID}}";
$isUnsubscribe = "{{isUnsubscribe}}";
$url = "https://api.itniotech.com/email/batchSendEmail?appId=$appId&fromEmailAddress=$fromEmailAddress&receiverId=$receiverId&subject=$subject&templateID=$templateID&url=$backUrl&language=$language&adFlag=$adFlag&isUnsubscribe=$isUnsubscribe";
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 0,
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json;charset=UTF-8",
"Sign: $sign",
"Timestamp: $timeStamp",
"Api-Key: $apiKey"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
REQUEST
curl --location --request GET 'https://api.itniotech.com/email/batchSendEmail'
--header 'Content-Type: application/json;charset=UTF-8'
--header 'Sign: {sign}'
--header 'Timestamp: {datetime}'
--header 'Api-Key: {apiKey}'
--data-raw '{"appId": "{{appId}}","fromEmailAddress": "{{fromEmailAddress}}","receiverId": "{{receiverId}}","subject": "{{subject}}","templateID": "{{templateID}}","url":"{{url}}","language":"{{language}}","adFlag":{{adFlag}},"triggerID":"{{triggerID}}","isUnsubscribe":{{isUnsubscribe}}}'
REQUEST
import hashlib
import time
import requests
import json
base_url = "https://api.itniotech.com/email/batchSendEmail"
api_key = "your api key"
api_pwd = "your api secret"
app_id = "your appid"
timestamp = int(time.time())
s = "%s%s%s" % (api_key, api_pwd, str(timestamp))
sign = hashlib.md5(s.encode(encoding='UTF-8')).hexdigest()
headers = {
'Content-Type': 'application/json;charset=utf-8',
'Sign': sign,
'Timestamp': str(timestamp),
'Api-Key': api_key
}
fromEmailAddress = "{{fromEmailAddress}}"
receiverId = "{{receiverId}}"
subject = "{{subject}}"
templateID = "{{templateID}}"
emailUrl = "{{url}}"
adFlag = "{{adFlag}}"
language = "{{language}}"
isUnsubscribe = "{{isUnsubscribe}}"
params = {"appId": app_id, "fromEmailAddress": fromEmailAddress, "receiverId": receiverId, "subject": subject,
"templateID": templateID, "url": emailUrl, "language": language, "adFlag": adFlag, "isUnsubscribe": isUnsubscribe}
print(params)
rsp = requests.get(base_url, params, headers=headers)
if rsp.status_code == 200:
data = json.loads(rsp.text)
print(data)
RESPONSEEXAMPLE
{
"status": "0",
"reason": null,
"taskId": "630361b19ef86e51f4de07f1"
}