การส่งที่เกี่ยวข้อง
การส่งทั่วไป
URL
https://email.api.engagelab.cc/v1/mail/send
Content-Type:
Content-Type: application/json;charset=utf-8
วิธีการร้องขอ HTTP
POST
ส่วนหัวของคำขอ
ส่วนหัว | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
Authorization | String | true | Basic base64(api_user:api_key) |
พารามิเตอร์ของคำขอ
พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
from | string | Yes | ผู้ส่ง ตัวอย่าง: support@mail.engagelab.com , EngageLab Team<support@mail.engagelab.com> หากต้องการแสดงชื่อผลิตภัณฑ์หรือแบรนด์บริษัท ใช้รูปแบบ EngageLab Team<support@mail.engagelab.com> EngageLab Team คือชื่อผู้ส่งและสามารถเป็นชื่อผลิตภัณฑ์หรือแบรนด์บริษัท <support@mail.engagelab.com> คือที่อยู่อีเมลของผู้ส่ง |
to | array[string] | Yes | ผู้รับ รองรับสูงสุด 100 ที่อยู่ ตัวอย่าง: ["support@mail.engagelab.com","support@engagelab.com"] |
body | object | Yes | การตั้งค่าอีเมล |
custom_args | object | No | ฟิลด์กำหนดเองที่ลูกค้ากำหนด รองรับสูงสุด 1KB ค่าของ custom_args ไม่สามารถมีสัญลักษณ์ "." ได้ |
request_id | string | No | รหัสคำขอสำหรับการส่งนี้ รองรับสูงสุด 128 ตัวอักษร |
เนื้อหา
พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
cc | array[string] | No | ที่อยู่ CC รองรับสูงสุด 100 ที่อยู่ ใช้ได้เฉพาะเมื่อ send_mode = 1 |
bcc | array[string] | No | ที่อยู่ BCC รองรับสูงสุด 100 ที่อยู่ ใช้ได้เฉพาะเมื่อ send_mode = 1 |
reply_to | array[string] | No | ที่อยู่ตอบกลับ รองรับสูงสุด 3 ที่อยู่ หากไม่ได้ระบุ ที่อยู่ตอบกลับจะเป็นค่าเริ่มต้นที่ from |
subject | string | Yes | หัวข้ออีเมล รองรับสูงสุด 256 ตัวอักษร รองรับตัวแปรและอิโมจิ |
content | object | Yes | เนื้อหาอีเมล |
html | string | * | เนื้อหาอีเมลในรูปแบบ text/html |
text | string | * | เนื้อหาอีเมลในรูปแบบ text/plain |
preview_text | string | No | ข้อความตัวอย่างของอีเมล |
vars | object | No | ตัวแปร รองรับสูงสุด 1MB ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
dynamic_vars | array[object] | No | ตัวแปรเทมเพลตแบบไดนามิก รองรับสูงสุด 1MB ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
label_id | string | No | รหัสป้ายกำกับที่ใช้สำหรับการส่งนี้ |
label_name | string | No | ชื่อป้ายกำกับที่ใช้สำหรับการส่งนี้ |
headers | object | No | ส่วนหัวของอีเมล รองรับสูงสุด 1KB |
attachments | array[object] | No | ไฟล์แนบของอีเมล ขนาดรวมต้องไม่เกิน 10MB |
content | string | Yes | เนื้อหาไฟล์แนบในรูปแบบ base64 |
filename | string | Yes | ชื่อไฟล์แนบ เช่น example.pdf |
disposition | string | Yes | ค่าที่อนุญาต: attachment, inline |
content_id | string | No | หาก disposition ถูกตั้งค่าเป็น inline และประเภทไฟล์เป็นภาพ ค่านี้ต้องถูกตั้งค่า |
settings | object | No | การตั้งค่าการส่ง |
send_mode | int | No | โหมดการส่ง 0 สำหรับการส่งแบบรายบุคคล; 1 สำหรับการส่งแบบกระจายที่ผู้รับทั้งหมดสามารถมองเห็นได้; 2 สำหรับการส่งที่อยู่ในรายการที่ to เป็นนามแฝงของรายการที่อยู่ ค่าเริ่มต้นคือ 0 |
return_email_id | boolean | No | จะคืนรหัสอีเมลหรือไม่ ค่าเริ่มต้นคือ true |
sandbox | boolean | No | จะใช้โหมดแซนด์บ็อกซ์หรือไม่ ค่าเริ่มต้นคือ false หากเป็น true อีเมลจะไม่ถูกส่งแต่จะมีการตรวจสอบพารามิเตอร์คำขอเท่านั้น |
notification | boolean | No | จะใช้การยืนยันการอ่านหรือไม่ ค่าเริ่มต้นคือ false การยืนยันจะเป็นค่าเริ่มต้นที่ from และต้องใช้ร่วมกับเส้นทางการรับ |
open_tracking | boolean | No | จะเปิดใช้งานการติดตามการเปิดหรือไม่ ค่าเริ่มต้นคือการตั้งค่าระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
click_tracking | boolean | No | จะเปิดใช้งานการติดตามการคลิกหรือไม่ ค่าเริ่มต้นคือการตั้งค่าระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
unsubscribe_tracking | boolean | No | จะเปิดใช้งานการติดตามการยกเลิกการสมัครหรือไม่ ค่าเริ่มต้นคือการตั้งค่าระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
unsubscribe_page_id | array[int] | No | หน้ายกเลิกการสมัครที่กำหนดเอง ค่าเริ่มต้นคือการตั้งค่าระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
หมายเหตุ:
- เมื่อ send_mode=2 ค่า
to
จะเป็นนามแฝงของรายการที่อยู่ และจำนวนของนามแฝงไม่สามารถเกิน 5 ในกรณีนี้ พารามิเตอร์cc
และbcc
จะไม่ถูกต้อง - ทั้ง
html
และplain
ไม่สามารถว่างเปล่าได้ preview_text
สามารถใช้ได้เฉพาะกับhtml
หากไม่ได้ระบุhtml
ค่าpreview_text
จะไม่มีผลvars
ใช้สำหรับการแทนค่าตัวแปรในเนื้อหาอีเมล มีรูปแบบเป็น JSON object:{"varname":["value1","value2"]}
หากค่าตัวแปรว่างเปล่าหรือเป็นช่องว่าง ข้อความที่เกี่ยวข้องในอีเมลจะแสดงเป็นว่างเปล่า
เนื้อหาอีเมล: Dear %name%, welcome to %sp% email service.
ค่าของ vars ที่เกี่ยวข้อง: {"name":["mike"], "sp":["engagelab"]}
การแทนค่าของเนื้อหาอีเมล: Dear mike, welcome to engagelab email service.
dynamic_vars
ใช้สำหรับการแทนค่าตัวแปรเทมเพลตแบบไดนามิก มีรูปแบบเป็น JSON object:[{"varname1":"value1","varname2":"value2"}]
.
เนื้อหาอีเมล: Dear {{name}}, welcome to {{sp}} email service.
ค่าของ dynamic_vars: [{"name":"jim","sp":"engagelab"}]
การแทนค่าของเนื้อหาอีเมล: Dear jim, welcome to engagelab email service.
หากระบุทั้ง
label_id
และlabel_name
และlabel_name
ไม่มีอยู่ในระบบ ระบบจะสร้างขึ้นอัตโนมัติheaders
ใช้สำหรับฟิลด์ส่วนหัวของอีเมลที่กำหนดเอง มีรูปแบบเป็น JSON object:{"User-Define":"123", "User-Custom":"abc"}
อย่างไรก็ตาม สตริงคีย์ไม่สามารถรวมค่าต่อไปนี้ได้ (ไม่คำนึงถึงตัวพิมพ์ใหญ่-เล็ก):DKIM-Signature
,Received
,Sender
,Date
,From
,To
,Reply-To
,Cc
,Bcc
,Subject
,Content-Type
,Content-Transfer-Encoding
,X-SENDCLOUD-UUID
,X-SENDCLOUD-LOG
,X-Remote-Web-IP
,X-SMTPAPI
,Return-Path
,X-SENDCLOUD-LOG-NEW
.เมื่อ
disposition
ถูกตั้งค่าเป็น inline และเนื้อหาไฟล์แนบเป็นภาพ ไฟล์แนบจะถูกแสดงเป็นภาพ inline โดยตรงในเนื้อหาอีเมลcontent_id
ต้องถูกตั้งค่าและต้องเป็นสตริงที่ไม่ซ้ำกัน ซึ่งจะใช้เป็นsrc
สำหรับภาพในเนื้อหาอีเมล
Email content:
<html>
<img src="cid:image_1000"></img>
<img src="cid:image_1001"></img>
</html>
attachments parameter:
[
{"content":" base 64 image content", "filename": "a23456.jpg","disposition": "inline","content_id": "image_1000"},
{"content":" base 64 image content", "filename": "a23457.jpg","disposition": "inline","content_id": "image_1001"},
]
custom_args
ใช้เป็นเนื้อหาที่กำหนดเองโดยลูกค้าและจะถูกฝังในส่วนหัวของอีเมล จะถูกส่งกลับไปยังลูกค้าในข้อมูล WebHook ที่ตามมา ค่าของ custom_args ไม่สามารถมีสัญลักษณ์ "." ได้request_id
ใช้เพื่อป้องกันการส่งซ้ำและมีอายุการใช้งาน 1 ชั่วโมง หากส่งคำขอเดียวกันภายใน 1 ชั่วโมง ผลลัพธ์ของคำขอก่อนหน้าจะถูกส่งกลับ- ขนาดรวมของอีเมลต้องไม่เกิน 70MB
ตัวอย่างคำขอ
curl -X POST -H 'Content-Type: application/json; charset=utf-8'
-H 'Authorization:Basic YXBpX3VzZXI6YXBpX2tleQ=='
--data '{
"from": "EngageLab Newsletter <newsletter@mail.engagelab.com>",
"to": ["111@qq.com", "222<222@qq.com>"],
"body": {
"cc": ["noreply@mail.engagelab.com"],
"bcc": ["intern<intern@mail.engagelab.com>"],
"reply_to": ["reply@mail.engagelab.com"],
"subject": "%date% Newsletter ",
"content": {
"html": "<a href=\"https://www.engagelab.com\">Newsletter %kkk%</a>",
"text": "Today's news is %ttt%",
"preview_text": "preview_text is ..."
},
"vars": { },
"label_id": 100233,
"label_name": "",
"headers": {},
"attachments": [{
"content": "The Base64 encoded content of the attachment",
"type": "text/html",
"filename": "The attachment's filename",
"disposition": "inline | attachment",
"content_id": ""
}],
"settings": {
"send_mode": 0,
"return_email_id": true,
"sandbox": true,
"notification": false,
"open_tracking": true,
"click_tracking": false,
"unsubscribe_tracking": true,
"unsubscribe_page_id": [1,2]
}
},
"custom_args": {},
"request_id": ""
}' 'https://email.api.engagelab.cc/v1/mail/send'
ตัวอย่างการตอบกลับ
- การส่งที่ไม่ใช่รายการที่อยู่ (send_mode=0 หรือ send_mode=1)
Response-success
HTTP Status: 200
{
"email_ids":[
"1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound0$111@qq.com",
"1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound1$222@qq.com"],
"request_id":""
}
Response-error
HTTP Status :400
{
"code": 30801,
"message": "From can not be empty"
}
- การส่งรายการที่อยู่ (send_mode=2) Response-success
HTTP Status: 200
{
"task_id":[102923],
"request_id":""
}
Response-error
HTTP Status :400
{
"code": 30801,
"message": "From can not be empty"
}
การส่งเทมเพลต
URL
https://email.api.engagelab.cc/v1/mail/sendtemplate
Content-Type:
Content-Type: application/json; charset=utf-8
วิธีการร้องขอ HTTP
POST
ส่วนหัวของคำขอ
ส่วนหัว | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
Authorization | String | true | Basic base64(api_user:api_key) |
พารามิเตอร์คำขอ
พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
from | string | ใช่ | ผู้ส่ง ตัวอย่าง: support@mail.engagelab.com , EngageLab Team<support@mail.engagelab.com> เพื่อแสดงชื่อแบรนด์ผลิตภัณฑ์หรือบริษัท ใช้รูปแบบ EngageLab Team<support@mail.engagelab.com> โดยที่ EngageLab Team เป็นชื่อผู้ส่งและสามารถเปลี่ยนเป็นชื่อแบรนด์ผลิตภัณฑ์หรือบริษัทได้ <support@mail.engagelab.com> เป็นที่อยู่อีเมลของผู้ส่ง |
to | array[string] | ใช่ | ผู้รับ รองรับสูงสุด 100 ที่อยู่ ตัวอย่าง: ["xjm@hotmail.com","xjm2@gmail.com"] |
body | object | ใช่ | การตั้งค่าอีเมล |
custom_args | object | ไม่ | ฟิลด์กำหนดเองที่ลูกค้ากำหนด รองรับสูงสุด 1KB ค่าของ custom_args ไม่สามารถมีสัญลักษณ์ "." ได้ |
request_id | string | ไม่ | รหัสคำขอสำหรับการส่งนี้ รองรับสูงสุด 128 ตัวอักษร |
เนื้อหา
พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
---|---|---|---|
cc | array[string] | ไม่ | ที่อยู่ CC รองรับสูงสุด 100 ที่อยู่ ใช้ได้เฉพาะเมื่อ send_mode = 1 |
bcc | array[string] | ไม่ | ที่อยู่ BCC รองรับสูงสุด 100 ที่อยู่ ใช้ได้เฉพาะเมื่อ send_mode = 1 |
reply_to | array[string] | ไม่ | ที่อยู่ตอบกลับ รองรับสูงสุด 3 ที่อยู่ หากไม่ได้ระบุ ที่อยู่อีเมลตอบกลับจะเป็นค่าเริ่มต้นจาก from |
subject | string | ไม่ | หัวข้ออีเมล รองรับสูงสุด 256 ตัวอักษร รองรับตัวแปรและอีโมจิ หากระบุไว้จะเขียนทับหัวข้อของเทมเพลตที่ถูกเรียกใช้ |
template_invoke_name | string | ใช่ | ชื่อเรียกใช้เทมเพลต |
vars | object | ไม่ | ตัวแปร รองรับสูงสุด 1MB ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
dynamic_vars | array[object] | ไม่ | ตัวแปรเทมเพลตแบบไดนามิก รองรับสูงสุด 1MB ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
label_id | string | ไม่ | รหัสป้ายกำกับที่ใช้สำหรับการส่งนี้ |
label_name | string | ไม่ | ชื่อป้ายกำกับที่ใช้สำหรับการส่งนี้ |
headers | object | ไม่ | ข้อมูลส่วนหัวของอีเมล รองรับสูงสุด 1KB |
attachments | array[object] | ไม่ | การตั้งค่าไฟล์แนบ |
content | string | ใช่ | เนื้อหาไฟล์แนบที่เข้ารหัส Base64 |
filename | string | ใช่ | ชื่อไฟล์แนบ เช่น example.pdf |
disposition | string | ใช่ | ค่าที่อนุญาต: attachment, inline |
content_id | string | ไม่ | หาก disposition ถูกตั้งค่าเป็น inline และประเภทไฟล์เป็นภาพ ค่านี้ต้องถูกตั้งค่า |
settings | object | ไม่ | การตั้งค่าการส่ง |
send_mode | int | ไม่ | โหมดการส่ง 0 หมายถึงการส่งแบบรายบุคคล; 1 หมายถึงการส่งแบบกระจาย ผู้รับทั้งหมดจะถูกแสดงพร้อมกัน; 2 หมายถึงการส่งรายการที่อยู่ โดยค่าของ to คือชื่อเล่นของรายการที่อยู่ ค่าเริ่มต้นคือ 0 |
return_email_id | boolean | ไม่ | จะส่งคืนรหัสอีเมลหรือไม่ ค่าเริ่มต้นคือ true |
sandbox | boolean | ไม่ | จะใช้โหมด sandbox หรือไม่ ค่าเริ่มต้นคือ false หากตั้งค่าเป็น true อีเมลจะไม่ถูกส่ง จะตรวจสอบความถูกต้องของพารามิเตอร์คำขอเท่านั้น |
notification | boolean | ไม่ | จะใช้ใบตอบรับการอ่านหรือไม่ ค่าเริ่มต้นคือ false ใบตอบรับเริ่มต้นจะถูกส่งไปที่ from และต้องใช้ร่วมกับเส้นทางการรับ |
open_tracking | boolean | ไม่ | จะเปิดใช้งานการติดตามการเปิดหรือไม่ ค่าเริ่มต้นคือค่าการตั้งค่าของระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
click_tracking | boolean | ไม่ | จะเปิดใช้งานการติดตามการคลิกหรือไม่ ค่าเริ่มต้นคือค่าการตั้งค่าของระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
unsubscribe_tracking | boolean | ไม่ | จะเปิดใช้งานการติดตามการยกเลิกการสมัครหรือไม่ ค่าเริ่มต้นคือค่าการตั้งค่าของระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
unsubscribe_page_id | array[int] | ไม่ | หน้ายกเลิกการสมัครที่กำหนดเอง ค่าเริ่มต้นคือค่าการตั้งค่าของระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
หมายเหตุ:
เมื่อ send_mode=2 ค่าของ
to
คือชื่อเล่นของรายการที่อยู่ และจำนวนไม่เกิน 5 ในขณะนี้ พารามิเตอร์cc
และbcc
จะไม่ถูกต้องvars
ใช้สำหรับการแทนที่ตัวแปรในเนื้อหาอีเมล มีรูปแบบเป็นวัตถุ JSON:{"varname":["value1","value2"]}
โดยที่varname
คือตัวแปรในเนื้อหาอีเมล หากค่าตัวแปรว่างเปล่าหรือเป็นช่องว่าง ข้อความที่เกี่ยวข้องในอีเมลจะแสดงเป็นว่างเปล่าเนื้อหาอีเมล: Dear %name%, welcome to %sp% email service. ค่าของ `vars` ที่เกี่ยวข้อง: {"name":["mike"], "sp":["engagelab"]} การแทนที่เนื้อหาอีเมล: Dear mike, welcome to engagelab email service.เนื้อหาอีเมล: Dear %name%, welcome to %sp% email service. ค่าของ `vars` ที่เกี่ยวข้อง: {"name":["mike"], "sp":["engagelab"]} การแทนที่เนื้อหาอีเมล: Dear mike, welcome to engagelab email service.
โค้ดนี้โชว์เป็นหน้าต่างลอยdynamic_vars
ใช้สำหรับการแทนที่ตัวแปรเทมเพลตแบบไดนามิก มีรูปแบบเป็นวัตถุ JSON:[{"varname1":"value1","varname2":"value2"}]
เนื้อหาอีเมล: Dear {{name}}, welcome to {{sp}} email service.
ค่าของ `dynamic_vars` ที่เกี่ยวข้อง: [{"name":"jim","sp":"engagelab"}]
การแทนที่เนื้อหาอีเมล: Dear jim, welcome to engagelab email service.
หากผู้ใช้ระบุ
label_id
หรือlabel_name
และlabel_name
ไม่มีอยู่ ระบบจะสร้างโดยอัตโนมัติ หากระบุทั้งlabel_id
และlabel_name
label_name
จะถูกละเว้นheaders
ใช้สำหรับกำหนดฟิลด์ส่วนหัวของอีเมลเอง มีรูปแบบเป็นวัตถุ JSON:{"User-Define":"123", "User-Custom":"abc"}
อย่างไรก็ตาม สตริงคีย์ไม่สามารถมีค่าต่อไปนี้ (ไม่คำนึงถึงตัวพิมพ์ใหญ่-เล็ก):DKIM-Signature
,Received
,Sender
,Date
,From
,To
,Reply-To
,Cc
,Bcc
,Subject
,Content-Type
,Content-Transfer-Encoding
,X-SENDCLOUD-UUID
,X-SENDCLOUD-LOG
,X-Remote-Web-IP
,X-SMTPAPI
,Return-Path
,X-SENDCLOUD-LOG-NEW
เมื่อ
disposition
ถูกตั้งค่าเป็น inline และเนื้อหาไฟล์แนบเป็นภาพ ไฟล์แนบจะถูกแสดงเป็นภาพ inline ในเนื้อหาอีเมลโดยตรงcontent_id
ต้องถูกตั้งค่าและไม่ซ้ำกันในรูปแบบสตริง ซึ่งทำหน้าที่เป็นsrc
สำหรับภาพที่แสดงในเนื้อหาอีเมลEmail content: <html> <img src="cid:image_1000"></img> <img src="cid:image_1001"></img> </html> attachments parameter: [ {"content":" base 64 image content", "filename": "a23456.jpg","disposition": "inline","content_id": "image_1000"}, {"content":" base 64 image content", "filename": "a23457.jpg","disposition": "inline","content_id": "image_1001"}, ]Email content: <html> <img src="cid:image_1000"></img> <img src="cid:image_1001"></img> </html> attachments parameter: [ {"content":" base 64 image content", "filename": "a23456.jpg","disposition": "inline","content_id": "image_1000"}, {"content":" base 64 image content", "filename": "a23457.jpg","disposition": "inline","content_id": "image_1001"}, ]
โค้ดนี้โชว์เป็นหน้าต่างลอยcustom_args
ใช้เป็นเนื้อหาที่กำหนดเองโดยลูกค้า ซึ่งจะถูกฝังในส่วนหัวของอีเมลและส่งคืนให้กับลูกค้าในข้อมูล WebHook ถัดไป ค่าของ custom_args ไม่สามารถมีสัญลักษณ์ "." ได้request_id
ใช้เพื่อป้องกันการส่งซ้ำและมีผลบังคับใช้เป็นเวลา 1 ชั่วโมง หากส่งซ้ำภายใน 1 ชั่วโมง ผลลัพธ์ของคำขอล่าสุดจะถูกส่งคืนขนาดรวมของอีเมลต้องไม่เกิน 70MB
ตัวอย่าง
เนื้อหาเทมเพลตสำหรับ month_bill
Dear %name%:
Hello! Your consumption amount this month is: %money% .
ตัวอย่างการส่งเทมเพลตปกติ (เรียกใช้เทมเพลต month_bill
)
curl -X POST "https://email.api.engagelab.cc/v1/mail/sendtemplate"
--header "Authorization: Basic <<YOUR_API_KEY_HERE>>"
--header "Content-Type: application/json"
--data '{
"from": "support@mail.engagelab.com",
"to": ["xjmfc@126.com", "xjmfcme@gmail.com"],
"body": {
"subject": "test email",
"template_invoke_name": "month_bill",
"label_id": 10143,
"label_name": "",
"vars": {
"%name%": ["jack", "jone"],
"%money%": ["30", "50"]
},
"headers": {
"userdefine-tag-location": "us",
"userdefine-tag-user": "fashion"
},
"attachments": [{
"content": "The Base64 encoded content of the attachment",
"filename": "The attachment's filename",
"disposition": "inline | attachment",
"content_id": ""
}],
"settings": {
"send_mode": 0,
"return_email_id": true,
"sandbox": true,
"notification": false,
"open_tracking": true,
"click_tracking": false,
"unsubscribe_tracking": true,
"unsubscribe_page_id": [1, 2]
}
},
"custom_args": {},
"request_id": ""
}'
#xjmfc@126.com received:
Dear jack:
Hello! Your consumption amount this month is: 30 .
#---------------------------------------------------
# xjmfcme@gmail.com received:
Dear Joe:
Hello! Your consumption amount this month is: 50 .
Response-success
HTTP Status: 200
{
"email_ids":[
"1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound0$xjmfc@126.com",
"1447054895514_15555555_32350_1350.sc-10_10_126_221-inbound1$xjmfcme@gmail.com"],
"request_id":""
}
Response-error
HTTP Status :404
not found
การส่งรายการที่อยู่เทมเพลต (เรียกใช้เทมเพลต month_bill
, เรียกรายการที่อยู่ users@maillist.email.engagelab.com
)
curl -X POST "https://email.api.engagelab.cc/v1/mail/sendtemplate"
--header "Authorization: Basic <<YOUR_API_KEY_HERE>>"
--header "Content-Type: application/json"
--data '{
"from":{"admin@engaelab.com"},
"to":["users@maillist.email.engagelab.com"],
"body":{
"subject":"bill",
"template_invoke_name":"month_bill",
"label":"gangz"
}}'
Response-success
HTTP Status: 200
{
"task_id":[102923],
"request_id":""
}
Response-error
HTTP Status :404
not found
ส่งปฏิทินการประชุม
URL
https://email.api.engagelab.cc/v1/mail/sendcalendar
Content-Type:
Content-Type: application/json; charset=utf-8
HTTP Request Method
POST
Request Header
Header | Type | Required | Description |
---|---|---|---|
Authorization | String | true | Basic base64(api_user:api_key) |
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
from | string | Yes | ผู้ส่ง ตัวอย่าง: support@mail.engagelab.com , EngageLab Team<support@mail.engagelab.com> เพื่อแสดงชื่อแบรนด์ของผลิตภัณฑ์หรือบริษัท ใช้รูปแบบ EngageLab Team<support@mail.engagelab.com> โดยที่ EngageLab Team คือชื่อผู้ส่งและสามารถเป็นชื่อแบรนด์ของผลิตภัณฑ์หรือบริษัท <support@mail.engagelab.com> คือที่อยู่ผู้ส่ง |
to | array[string] | Yes | ผู้รับ รองรับได้สูงสุด 100 ที่อยู่ เช่น ["xjm@hotmail.com","xjm2@gmail.com"] |
body | object | Yes | การตั้งค่าอีเมล |
custom_args | object | No | ฟิลด์ที่กำหนดเองโดยลูกค้า (ไม่บังคับ) ค่าของ custom_args ไม่สามารถมีสัญลักษณ์ "." ได้ |
request_id | string | No | รหัสคำขอ |
Body
Parameter | Type | Required | Description |
---|---|---|---|
cc | array[string] | No | ที่อยู่ CC รองรับได้สูงสุด 100 ที่อยู่ ใช้ได้เฉพาะเมื่อ send_mode = 1 |
bcc | array[string] | No | ที่อยู่ BCC รองรับได้สูงสุด 100 ที่อยู่ ใช้ได้เฉพาะเมื่อ send_mode = 1 |
reply_to | array[string] | No | ที่อยู่ตอบกลับ รองรับได้สูงสุด 3 ที่อยู่ หากไม่ได้ระบุ ที่อยู่ตอบกลับจะเป็นที่อยู่ของผู้ส่งโดยค่าเริ่มต้น |
subject | string | Yes | หัวข้ออีเมล สูงสุด 256 ตัวอักษร รองรับตัวแปรและอีโมจิ |
content | object | Yes | การตั้งค่าเนื้อหาอีเมล |
html | string | * | เนื้อหาอีเมลในรูปแบบ text/html |
text | string | * | เนื้อหาอีเมลในรูปแบบ text/plain |
preview_text | string | No | ข้อความตัวอย่างของอีเมล |
vars | object | No | ตัวแปร รองรับได้สูงสุด 1MB ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
dynamic_vars | array[object] | No | ตัวแปรเทมเพลตแบบไดนามิก รองรับได้สูงสุด 1MB ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
label_id | string | No | รหัสป้ายกำกับที่ใช้สำหรับการส่งนี้ |
label_name | string | No | ชื่อป้ายกำกับที่ใช้สำหรับการส่งนี้ |
headers | object | No | ข้อมูลส่วนหัวของอีเมล สูงสุด 1KB |
attachments | array[object] | No | ไฟล์แนบของอีเมล ขนาดรวมต้องไม่เกิน 10MB |
content | string | Yes | เนื้อหาไฟล์แนบในรูปแบบ base64 |
filename | string | Yes | ชื่อไฟล์แนบ เช่น example.pdf |
disposition | string | Yes | ค่าที่อนุญาต: inline, attachment |
content_id | string | Yes | หาก disposition ถูกตั้งค่าเป็น inline และประเภทไฟล์เป็นภาพ ค่านี้ต้องถูกตั้งค่า |
settings | object | No | การตั้งค่าการส่ง |
send_mode | int | No | โหมดการส่ง 0 สำหรับการส่งแบบรายบุคคล; 1 สำหรับการส่งแบบกระจายที่ผู้รับทั้งหมดมองเห็นได้ ค่าเริ่มต้นคือ 0 |
return_email_id | boolean | No | ส่งคืนรหัสอีเมล ค่าเริ่มต้นคือ true |
sandbox | boolean | No | ใช้โหมด sandbox ค่าเริ่มต้นคือ false หากตั้งค่าเป็น true อีเมลจะไม่ถูกส่งแต่จะตรวจสอบพารามิเตอร์คำขอ |
notification | boolean | No | ใช้ใบตอบรับ ค่าเริ่มต้นคือ false ใบตอบรับเริ่มต้นจะไปยังผู้ส่งและต้องใช้ร่วมกับเส้นทางรับ |
open_tracking | boolean | No | เปิดการติดตามการเปิด ค่าเริ่มต้นคือค่าการกำหนดค่าระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
click_tracking | boolean | No | เปิดการติดตามการคลิก ค่าเริ่มต้นคือค่าการกำหนดค่าระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
unsubscribe_tracking | boolean | No | เปิดการติดตามการยกเลิกการสมัคร ค่าเริ่มต้นคือค่าการกำหนดค่าระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
unsubscribe_page_id | array[int] | No | หน้ายกเลิกการสมัครที่กำหนดเอง ค่าเริ่มต้นคือค่าการกำหนดค่าระบบ ใช้ได้เมื่อ send_mode=0 หรือ send_mode=1 |
calendar | object | Yes | การตั้งค่าปฏิทิน |
time_zone_id | string | Yes | ดู พจนานุกรมเขตเวลาปฏิทิน |
start_time | string | Yes | เวลาเริ่มต้นของกิจกรรมในรูปแบบ: yyyy-MM-dd HH:mm:ss |
end_time | string | Yes | เวลาสิ้นสุดของกิจกรรมในรูปแบบ: yyyy-MM-dd HH:mm:ss |
title | string | Yes | หัวข้อการประชุม สูงสุด 256 ตัวอักษร |
organizer | object | Yes | ผู้จัดการประชุม |
name | string | No | ชื่อ สูงสุด 64 ตัวอักษร |
string | Yes | ที่อยู่อีเมล | |
location | string | Yes | สถานที่ประชุม สูงสุด 128 ตัวอักษร |
description | string | No | คำอธิบายการประชุม สูงสุด 1024 ตัวอักษร |
participators | array[object] | No | ผู้เข้าร่วมประชุม |
name | string | No | ชื่อ สูงสุด 64 ตัวอักษร |
string | Yes | ที่อยู่อีเมล | |
alarm_min_before | integer | No | นาทีที่แจ้งเตือนก่อนการประชุม ช่วง: 1 ~ 60 |
action | object | No | การกระทำของปฏิทิน |
name | string | No | ชื่อการกระทำ ค่าที่อนุญาต: create, update, cancel ค่าเริ่มต้นคือ create |
uid | string | No | จำเป็นสำหรับการกระทำ update และ cancel ค่า uid จะถูกส่งคืนโดยอินเทอร์เฟซเมื่อสร้างอีเมลปฏิทิน |
หมายเหตุ:
ทั้ง html และ plain ไม่สามารถเว้นว่างได้
preview_text สามารถใช้ได้เฉพาะกับ html หากไม่ได้ระบุ html preview_text จะไม่มีผล
vars ใช้สำหรับการแทนค่าตัวแปรในเนื้อหาอีเมล มีรูปแบบเป็นวัตถุ JSON:
{"varname":["value1","value2"]}
หากตัวแปรว่างหรือมีเพียงช่องว่าง ข้อความที่สอดคล้องกันในอีเมลจะว่างเปล่าเนื้อหาอีเมล: Dear %name%, welcome to %sp% email service.
vars ที่สอดคล้องกัน: {"name":["mike"], "sp":["engagelab"]} เนื้อหาอีเมลที่แทนค่า: Dear mike, welcome to engagelab email service.vars ที่สอดคล้องกัน: {"name":["mike"], "sp":["engagelab"]} เนื้อหาอีเมลที่แทนค่า: Dear mike, welcome to engagelab email service.
โค้ดนี้โชว์เป็นหน้าต่างลอยdynamic_vars ใช้สำหรับการแทนค่าตัวแปรเทมเพลตแบบไดนามิก มีรูปแบบเป็นวัตถุ JSON:
[{"varname1":"value1","varname2":"value2"}]
เนื้อหาอีเมล: Dear {{name}}, welcome to {{sp}} email service.
dynamic_vars: [{"name":"jim","sp":"engagelab"}]
เนื้อหาอีเมลที่แทนค่า: Dear jim, welcome to engagelab email service.
หากผู้ใช้ระบุทั้ง label_id และ label_name และ label_name ไม่มีอยู่ ระบบจะสร้างขึ้นโดยอัตโนมัติ หากระบุทั้ง label_id และ label_name label_name จะถูกละเว้น
headers ใช้สำหรับกำหนดฟิลด์ส่วนหัวของอีเมลเอง มีรูปแบบเป็นวัตถุ JSON:
{"User-Define":"123", "User-Custom":"abc"}
อย่างไรก็ตาม สตริงคีย์ไม่สามารถรวมค่าต่อไปนี้ได้ (ไม่คำนึงถึงตัวพิมพ์):DKIM-Signature
,Received
,Sender
,Date
,From
,To
,Reply-To
,Cc
,Bcc
,Subject
,Content-Type
,Content-Transfer-Encoding
,X-SENDCLOUD-UUID
,X-SENDCLOUD-LOG
,X-Remote-Web-IP
,X-SMTPAPI
,Return-Path
,X-SENDCLOUD-LOG-NEW
.เมื่อ disposition ถูกตั้งค่าเป็น inline และเนื้อหาไฟล์แนบเป็นภาพ ไฟล์แนบจะถูกแสดงเป็นภาพ inline โดยตรงในเนื้อหาอีเมล content_id ต้องถูกตั้งค่าและต้องเป็นสตริงที่ไม่ซ้ำกัน ใช้เป็น src สำหรับภาพที่แสดงในเนื้อหาอีเมล
Email content:
<html>
<img src="cid:image_1000"></img>
<img src="cid:image_1001"></img>
</html>
attachments parameter:
[
{"content":" base 64 image content", "filename": "a23456.jpg","disposition": "inline","content_id": "image_1000"},
{"content":" base 64 image content", "filename": "a23457.jpg","disposition": "inline","content_id": "image_1001"},
]
custom_args ใช้เป็นเนื้อหาที่กำหนดเองโดยลูกค้าและจะถูกฝังในส่วนหัวของอีเมล ข้อมูล WebHook ที่ตามมาจะถูกส่งคืนให้กับลูกค้า ค่าของ custom_args ไม่สามารถมีสัญลักษณ์ "." ได้
request_id ใช้เพื่อป้องกันการส่งซ้ำและมีผลเป็นเวลา 1 ชั่วโมง หากมีการส่งซ้ำภายใน 1 ชั่วโมง ผลลัพธ์ของคำขอก่อนหน้าจะถูกส่งคืน
ขนาดรวมของอีเมลต้องไม่เกิน 70MB
ตัวอย่างคำขอ
curl -X POST 'https://email.api.engagelab.cc/v1/mail/sendcalendar' \
--header 'Authorization: Basic MTIyNF94am06MTJkOGIwODVlNjZhZGUyMmNlNGIwOWI5NjQ2YWQ1ODE=' \
--header 'Content-Type: application/json' \
--data '{
"from": "EngageLab Newsletter <newsletter@mail.engagelab.com>",
"to": ["111@qq.com", "222<222@qq.com>"],
"body": {
"cc": ["noreply@mail.engagelab.com"],
"bcc": ["intern<intern@mail.engagelab.com>"],
"reply_to": ["reply@mail.engagelab.com"],
"subject": "%date% Newsletter ",
"content": {
"html": "<a href=\"https://www.engagelabe.com\">Newsletter %kkk%</a>",
"text": "Newsletter %ttt%",
"preview_text": "preview_text is ..."
},
"label_id": "1233",
"label_name": "",
"headers": {
"userdefine-tag-location": "us",
"userdefine-tag-user": "fashion"
},
"settings": {
"send_mode": 0,
"return_email_id": true,
"sandbox": true,
"notification": false,
"open_tracking": true,
"click_tracking": false,
"unsubscribe_tracking": true,
"unsubscribe_page_id": [1,2]
},
"calendar": {
"time_zone_id":"America/New_York",
"start_time": "2020-12-10 10:00:00",
"end_time": "2020-12-10 12:00:00",
"title": "meeting titel",
"organizer": {
"name": "David",
"email": "david@mail.engagelab.com"
},
"location": "room208",
"description": "hello",
"alarm_min_before": 5,
"participators": [
{
"name": "p1",
"email": "p1@engagelab.org"
},
{ "email": "p2@engagelab.org", "name": "p2"},
{ "email": "p3@engagelab.org"}
],
"action": {
"name": "create",
"uid": "329r239h239888"
}
}
},
"custom_args": {},
"request_id": ""
}'
Response-success
HTTP Status: 200
{
"uid": "20230103T065922Z-uidGen@PC201503200437",
"email_ids": [
"1672729159224_15_2942_8497.sc-10_2_226_96-test0$111@qq.com",
"1672729159224_15_2942_8497.sc-10_2_226_96-test1$222@qq.com"
],
"request_id": ""
}
Response-error
HTTP Status :400
{
"code": 30801,
"message": "From can not be empty"
}