การส่งที่เกี่ยวข้อง

การส่งทั่วไป

URL

https://email.api.engagelab.cc/v1/mail/send
              
              https://email.api.engagelab.cc/v1/mail/send

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Content-Type:

Content-Type: application/json;charset=utf-8
              
              Content-Type: application/json;charset=utf-8

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

วิธีการร้องขอ HTTP

POST
              
              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

หมายเหตุ:

  1. เมื่อ send_mode=2 ค่า to จะเป็นนามแฝงของรายการที่อยู่ และจำนวนของนามแฝงไม่สามารถเกิน 5 ในกรณีนี้ พารามิเตอร์ cc และ bcc จะไม่ถูกต้อง
  2. ทั้ง html และ plain ไม่สามารถว่างเปล่าได้
  3. preview_text สามารถใช้ได้เฉพาะกับ html หากไม่ได้ระบุ html ค่า preview_text จะไม่มีผล
  4. 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.
              
              เนื้อหาอีเมล: Dear %name%, welcome to %sp% email service.

ค่าของ vars ที่เกี่ยวข้อง: {"name":["mike"], "sp":["engagelab"]}
    
การแทนค่าของเนื้อหาอีเมล: Dear mike, welcome to engagelab email service.

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  1. 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.
              
              เนื้อหาอีเมล: Dear {{name}}, welcome to {{sp}} email service.

ค่าของ dynamic_vars: [{"name":"jim","sp":"engagelab"}]

การแทนค่าของเนื้อหาอีเมล: Dear jim, welcome to engagelab email service.

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  1. หากระบุทั้ง label_id และ label_name และ label_name ไม่มีอยู่ในระบบ ระบบจะสร้างขึ้นอัตโนมัติ

  2. 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.

  3. เมื่อ 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"},
    ]

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  1. custom_args ใช้เป็นเนื้อหาที่กำหนดเองโดยลูกค้าและจะถูกฝังในส่วนหัวของอีเมล จะถูกส่งกลับไปยังลูกค้าในข้อมูล WebHook ที่ตามมา ค่าของ custom_args ไม่สามารถมีสัญลักษณ์ "." ได้
  2. request_id ใช้เพื่อป้องกันการส่งซ้ำและมีอายุการใช้งาน 1 ชั่วโมง หากส่งคำขอเดียวกันภายใน 1 ชั่วโมง ผลลัพธ์ของคำขอก่อนหน้าจะถูกส่งกลับ
  3. ขนาดรวมของอีเมลต้องไม่เกิน 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'
              
              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":"" }
              
              {
"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" }
              
              {
    "code": 30801,
    "message": "From can not be empty"
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  • การส่งรายการที่อยู่ (send_mode=2) Response-success

HTTP Status: 200

{ "task_id":[102923], "request_id":"" }
              
              {
"task_id":[102923],
"request_id":""
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Response-error

HTTP Status :400

{ "code": 30801, "message": "From can not be empty" }
              
              {
    "code": 30801,
    "message": "From can not be empty"
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การส่งเทมเพลต

URL

https://email.api.engagelab.cc/v1/mail/sendtemplate
              
              https://email.api.engagelab.cc/v1/mail/sendtemplate

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Content-Type:

Content-Type: application/json; charset=utf-8
              
              Content-Type: application/json; charset=utf-8

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

วิธีการร้องขอ HTTP

POST
              
              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

หมายเหตุ:

  1. เมื่อ send_mode=2 ค่าของ to คือชื่อเล่นของรายการที่อยู่ และจำนวนไม่เกิน 5 ในขณะนี้ พารามิเตอร์ cc และ bcc จะไม่ถูกต้อง

  2. 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.
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
  3. 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.
              
              เนื้อหาอีเมล: Dear {{name}}, welcome to {{sp}} email service.
     
     ค่าของ `dynamic_vars` ที่เกี่ยวข้อง: [{"name":"jim","sp":"engagelab"}]
     
     การแทนที่เนื้อหาอีเมล: Dear jim, welcome to engagelab email service.

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  1. หากผู้ใช้ระบุ label_id หรือ label_name และ label_name ไม่มีอยู่ ระบบจะสร้างโดยอัตโนมัติ หากระบุทั้ง label_id และ label_name label_name จะถูกละเว้น

  2. 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

  3. เมื่อ 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"},
    ]
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
  4. custom_args ใช้เป็นเนื้อหาที่กำหนดเองโดยลูกค้า ซึ่งจะถูกฝังในส่วนหัวของอีเมลและส่งคืนให้กับลูกค้าในข้อมูล WebHook ถัดไป ค่าของ custom_args ไม่สามารถมีสัญลักษณ์ "." ได้

  5. request_id ใช้เพื่อป้องกันการส่งซ้ำและมีผลบังคับใช้เป็นเวลา 1 ชั่วโมง หากส่งซ้ำภายใน 1 ชั่วโมง ผลลัพธ์ของคำขอล่าสุดจะถูกส่งคืน

  6. ขนาดรวมของอีเมลต้องไม่เกิน 70MB

ตัวอย่าง

เนื้อหาเทมเพลตสำหรับ month_bill

Dear %name%: Hello! Your consumption amount this month is: %money% .
              
              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 .
              
              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":"" }
              
              {
"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
              
              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" }}'
              
              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":"" }
              
              {
"task_id":[102923],
"request_id":""
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Response-error

HTTP Status :404

not found
              
              not found

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ส่งปฏิทินการประชุม

URL

https://email.api.engagelab.cc/v1/mail/sendcalendar
              
              https://email.api.engagelab.cc/v1/mail/sendcalendar

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

Content-Type:

Content-Type: application/json; charset=utf-8
              
              Content-Type: application/json; charset=utf-8

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

HTTP Request Method

POST
              
              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 ตัวอักษร
email string Yes ที่อยู่อีเมล
location string Yes สถานที่ประชุม สูงสุด 128 ตัวอักษร
description string No คำอธิบายการประชุม สูงสุด 1024 ตัวอักษร
participators array[object] No ผู้เข้าร่วมประชุม
name string No ชื่อ สูงสุด 64 ตัวอักษร
email 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 จะถูกส่งคืนโดยอินเทอร์เฟซเมื่อสร้างอีเมลปฏิทิน

หมายเหตุ:

  1. ทั้ง html และ plain ไม่สามารถเว้นว่างได้

  2. preview_text สามารถใช้ได้เฉพาะกับ html หากไม่ได้ระบุ html preview_text จะไม่มีผล

  3. 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.
    
                
    โค้ดนี้โชว์เป็นหน้าต่างลอย
  4. 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.
              
              เนื้อหาอีเมล: Dear {{name}}, welcome to {{sp}} email service.
     
     dynamic_vars: [{"name":"jim","sp":"engagelab"}]
     
     เนื้อหาอีเมลที่แทนค่า: Dear jim, welcome to engagelab email service.

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  1. หากผู้ใช้ระบุทั้ง label_id และ label_name และ label_name ไม่มีอยู่ ระบบจะสร้างขึ้นโดยอัตโนมัติ หากระบุทั้ง label_id และ label_name label_name จะถูกละเว้น

  2. 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.

  3. เมื่อ 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"},
    ]

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  1. custom_args ใช้เป็นเนื้อหาที่กำหนดเองโดยลูกค้าและจะถูกฝังในส่วนหัวของอีเมล ข้อมูล WebHook ที่ตามมาจะถูกส่งคืนให้กับลูกค้า ค่าของ custom_args ไม่สามารถมีสัญลักษณ์ "." ได้

  2. request_id ใช้เพื่อป้องกันการส่งซ้ำและมีผลเป็นเวลา 1 ชั่วโมง หากมีการส่งซ้ำภายใน 1 ชั่วโมง ผลลัพธ์ของคำขอก่อนหน้าจะถูกส่งคืน

  3. ขนาดรวมของอีเมลต้องไม่เกิน 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": "" }'
              
              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": "" }
              
              {
    "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" }
              
              {
    "code": 30801,
    "message": "From can not be empty"
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
icon
ติดต่อฝ่ายขาย