Deliverlies
Alamat Endpoint
| Pusat Data | URL |
|---|---|
| Singapura | https://email.api.engagelab.cc |
| Turki | https://emailapi-tr.engagelab.com |
Saat menggunakan REST API, pastikan pusat data yang dipilih sesuai dengan base URL yang digunakan.
POST/v1/mail/send
Pengiriman Reguler
URL
https://email.api.engagelab.cc/v1/mail/send
Content-Type:
Content-Type: application/json;charset=utf-8
Metode HTTP Request
POST
Header Permintaan
| Header | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Authorization | String | ya | Basic base64(api_user:api_key) |
Parameter Permintaan
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| from | string | ya | Pengirim. Contoh: support@mail.engagelab.com, EngageLab Team<support@mail.engagelab.com>. Jika ingin menampilkan nama produk atau perusahaan, gunakan format Nama<email>. |
| to | array[string] | ya | Penerima. Maksimal 100 alamat. Contoh: ["xjm@hotmail.com","xjm2@gmail.com"] |
| body | object | ya | Pengaturan email |
| custom_args | object | tidak | Field opsional kustom pelanggan. Maksimal 1KB. Kunci tidak boleh mengandung simbol ".". |
| request_id | string | tidak | ID permintaan pengiriman; maksimal 128 karakter. |
Body
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| cc | array[string] | tidak | Cc. Maksimal 100 alamat. Hanya berlaku jika send_mode=1. |
| bcc | array[string] | tidak | Bcc. Maksimal 100 alamat. Hanya berlaku jika send_mode=1. |
| reply_to | array[string] | tidak | Balasan ke. Maksimal 3 alamat; jika tidak diisi, balasan ke alamat from. |
| subject | string | ya | Subjek. Maksimal 256 karakter; mendukung variabel, emoji. |
| content | object | ya | Konten |
| html | string | * | Konten html. Format text/html. |
| text | string | * | Konten teks. Format text/plain. |
| preview_text | string | tidak | Pratinjau konten. |
| vars | object | tidak | Variabel. Maksimal 1MB; berlaku saat send_mode=0 atau send_mode=1. |
| dynamic_vars | array[object] | tidak | Variabel template dinamis. Maksimal 1MB; berlaku saat send_mode=0 atau send_mode=1. |
| label_id | string | tidak | ID label untuk pengiriman ini |
| label_name | string | tidak | Nama label untuk pengiriman ini |
| headers | object | tidak | Header. Maksimal 1KB. |
| attachments | array[object] | tidak | Lampiran. Total ukuran tidak boleh melebihi 10MB. |
| content | string | ya | Konten lampiran. Base64 encoding. |
| filename | string | ya | Nama file lampiran, contoh: news.pdf |
| disposition | string | ya | Nilai: attachment atau inline. |
| content_id | string | tidak | Jika disposition=inline dan file gambar, harus diisi |
| settings | object | tidak | Pengaturan pengiriman |
| send_mode | int | tidak | Metode pengiriman. 0=terpisah; 1=broadcast; 2=daftar alamat. Default 0 |
| return_email_id | boolean | tidak | Apakah mengembalikan email ID, default true |
| sandbox | boolean | tidak | Mode sandbox, default false. Jika true, email tidak dikirim, hanya validasi parameter |
| notification | boolean | tidak | Tanda terima baca, default false. Tanda terima default ke from, harus digunakan dengan receiving route |
| open_tracking | boolean | tidak | Aktifkan pelacakan terbuka, default sistem. Berlaku saat send_mode=0/1 |
| click_tracking | boolean | tidak | Aktifkan pelacakan klik, default sistem. Berlaku saat send_mode=0/1 |
| unsubscribe_tracking | boolean | tidak | Aktifkan pelacakan berhenti langganan, default sistem. Berlaku saat send_mode=0/1 |
| unsubscribe_page_id | array[int] | tidak | Halaman berhenti langganan kustom, default sistem. Berlaku saat send_mode=0/1 |
Tips:
- Jika send_mode=2, nilai to adalah nickname daftar alamat, maksimal 5. Dalam kasus ini, parameter cc dan bcc tidak berlaku.
- Html dan plain tidak boleh kosong bersamaan.
- Preview_text hanya berlaku jika html ada.
- Vars untuk penggantian variabel konten email. Format: json object
{"varname": ["value1","value2"]}. - dynamic_vars untuk template dinamis. Format:
[{"varname1":"value1","varname2":"value2"}]. - label_id dan label_name, isi salah satu. Jika label_name tidak ada, sistem akan membuat otomatis. Jika keduanya diisi, label_name diabaikan.
- headers untuk kustomisasi header pesan. Format: json object. Kunci tidak boleh mengandung:
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 - Jika disposition=inline, lampiran gambar akan dirender di body email sebagai gambar inline. content_id wajib diisi dan unik.
- custom_args akan disisipkan di header, data WebHook berikutnya akan dikembalikan ke Anda. Kunci tidak boleh mengandung simbol ".".
- request_id untuk mencegah pengiriman ganda, berlaku 1 jam.
- Ukuran email maksimal 70MB.
Contoh Permintaan
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": "Berita hari ini adalah %ttt%",
"preview_text": "preview_text adalah ..."
},
"vars": { },
"label_id": 100233,
"label_name": "",
"headers": {},
"attachments": [{
"content": "Konten attachment yang dienkode Base64",
"type": "text/html",
"filename": "Nama file attachment",
"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'
Contoh Nilai Balik
- Pengiriman non-daftar alamat (send_mode=0 atau send_mode=1)
Respons-sukses
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":""
}
Respons-error
HTTP Status :400
{
"code": 30801,
"message": "From tidak boleh kosong"
}
- Pengiriman daftar alamat (send_mode=2) Respons-sukses
HTTP Status: 200
{
"task_id":[102923],
"request_id":""
}
Respons-error
HTTP Status :400
{
"code": 30801,
"message": "From tidak boleh kosong"
}
Pengiriman Template
URL
https://email.api.engagelab.cc/v1/mail/sendtemplate
Content-Type:
Content-Type: application/json; charset=utf-8
Metode HTTP Request
POST
Header Permintaan
| Header | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Authorization | String | ya | Basic base64(api_user:api_key) |
Parameter Permintaan
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| from | string | ya | Pengirim. Contoh: support@mail.engagelab.com, EngageLab Team<support@mail.engagelab.com>. Jika ingin menampilkan nama produk atau perusahaan, gunakan format Nama<email>. |
| to | array[string] | ya | Penerima. Maksimal 100 alamat. Contoh: ["xjm@hotmail.com","xjm2@gmail.com"] |
| body | object | ya | Pengaturan email |
| custom_args | object | tidak | Field opsional kustom pelanggan. Maksimal 1KB. Kunci tidak boleh mengandung simbol ".". |
| request_id | string | tidak | ID permintaan pengiriman; maksimal 128 karakter. |
Body
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| cc | array[string] | tidak | Cc. Maksimal 100 alamat. Hanya berlaku jika send_mode=1. |
| bcc | array[string] | tidak | Bcc. Maksimal 100 alamat. Hanya berlaku jika send_mode=1. |
| reply_to | array[string] | tidak | Balasan ke. Maksimal 3 alamat; jika tidak diisi, balasan ke alamat from. |
| subject | string | tidak | Subjek. Maksimal 256 karakter; mendukung variabel, emoji. |
| template_invoke_name | string | ya | Nama pemanggil template. |
| vars | object | tidak | Variabel. Maksimal 1MB; berlaku saat send_mode=0 atau send_mode=1. |
| dynamic_vars | array[object] | tidak | Variabel template dinamis. Maksimal 1MB; berlaku saat send_mode=0 atau send_mode=1. |
| label_id | string | tidak | ID label untuk pengiriman ini |
| label_name | string | tidak | Nama label untuk pengiriman ini |
| headers | object | tidak | Header. Maksimal 1KB. |
| attachments | array[object] | tidak | Lampiran. Total ukuran tidak boleh melebihi 10MB. |
| content | string | ya | Konten lampiran. Base64 encoding. |
| filename | string | ya | Nama file lampiran, contoh: news.pdf |
| disposition | string | ya | Nilai: attachment atau inline. |
| content_id | string | tidak | Jika disposition=inline dan file gambar, harus diisi |
| settings | object | tidak | Pengaturan pengiriman |
| send_mode | int | tidak | Metode pengiriman. 0=terpisah; 1=broadcast; 2=daftar alamat. Default 0 |
| return_email_id | boolean | tidak | Apakah mengembalikan email ID, default true |
| sandbox | boolean | tidak | Mode sandbox, default false. Jika true, email tidak dikirim, hanya validasi parameter |
| notification | boolean | tidak | Tanda terima baca, default false. Tanda terima default ke from, harus digunakan dengan receiving route |
| open_tracking | boolean | tidak | Aktifkan pelacakan terbuka, default sistem. Berlaku saat send_mode=0/1 |
| click_tracking | boolean | tidak | Aktifkan pelacakan klik, default sistem. Berlaku saat send_mode=0/1 |
| unsubscribe_tracking | boolean | tidak | Aktifkan pelacakan berhenti langganan, default sistem. Berlaku saat send_mode=0/1 |
| unsubscribe_page_id | array[int] | tidak | Halaman berhenti langganan kustom, default sistem. Berlaku saat send_mode=0/1 |
Tips:
- Jika send_mode=2, nilai to adalah nickname daftar alamat, maksimal 5. Dalam kasus ini, parameter cc dan bcc tidak berlaku.
- Vars untuk penggantian variabel konten email. Format: json object
{"varname": ["value1","value2"]}. - dynamic_vars untuk template dinamis. Format:
[{"varname1":"value1","varname2":"value2"}]. - label_id dan label_name, isi salah satu. Jika label_name tidak ada, sistem akan membuat otomatis. Jika keduanya diisi, label_name diabaikan.
- headers untuk kustomisasi header pesan. Format: json object. Kunci tidak boleh mengandung:
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 - Jika disposition=inline, lampiran gambar akan dirender di body email sebagai gambar inline. content_id wajib diisi dan unik.
- custom_args akan disisipkan di header, data WebHook berikutnya akan dikembalikan ke Anda. Kunci tidak boleh mengandung simbol ".".
- request_id untuk mencegah pengiriman ganda, berlaku 1 jam.
- Ukuran email maksimal 70MB.
Contoh Nilai Balik
Isi template (month_bill)
Dear %name%:
Halo! Jumlah konsumsi Anda bulan ini adalah: %money% .
Pengiriman reguler (memanggil template 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": "Konten attachment yang dienkode Base64",
"filename": "Nama file attachment",
"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 menerima: Dear jack: Halo! Jumlah konsumsi Anda bulan ini adalah: 30 . #---------------------------------------------------
xjmfcme@gmail.com menerima:
Dear jone: Halo! Jumlah konsumsi Anda bulan ini adalah: 50 .
Respons-sukses
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":""
}
Respons-error
HTTP Status :404
not found
Pengiriman reguler (memanggil template month_bill, kirim ke daftar alamat 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"
}}'
Respons-sukses
HTTP Status: 200
{
"task_id":[102923],
"request_id":""
}
Respons-error
HTTP Status :404
not found
Kirim Kalender Rapat
URL
https://email.api.engagelab.cc/v1/mail/sendcalendar
Content-Type:
Content-Type: application/json; charset=utf-8
Metode HTTP Request
POST
Header Permintaan
| Header | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Authorization | String | ya | Basic base64(apiUser:apiKey) |
Parameter Permintaan
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| from | string | ya | Pengirim. Contoh: support@mail.engagelab.com, EngageLab Team<support@mail.engagelab.com>. Jika ingin menampilkan nama produk atau perusahaan, gunakan format Nama<email>. |
| to | array[string] | ya | Penerima. Maksimal 100 alamat. Contoh: ["xjm@hotmail.com","xjm2@gmail.com"] |
| body | object | ya | Pengaturan email |
| custom_args | object | tidak | Field opsional kustom pelanggan. Maksimal 1KB. Kunci tidak boleh mengandung simbol ".". |
| request_id | string | tidak | ID permintaan pengiriman; maksimal 128 karakter. |
Body
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| cc | array[string] | tidak | Cc. Maksimal 100 alamat. Hanya berlaku jika send_mode=1. |
| bcc | array[string] | tidak | Bcc. Maksimal 100 alamat. Hanya berlaku jika send_mode=1. |
| reply_to | array[string] | tidak | Balasan ke. Maksimal 3 alamat; jika tidak diisi, balasan ke alamat from. |
| subject | string | ya | Subjek. Maksimal 256 karakter; mendukung variabel, emoji. |
| content | object | ya | Konten |
| html | string | * | Konten html. Format text/html. |
| text | string | * | Konten teks. Format text/plain. |
| preview_text | string | tidak | Pratinjau konten. |
| vars | object | tidak | Variabel. Maksimal 1MB; berlaku saat send_mode=0 atau send_mode=1. |
| dynamic_vars | array[object] | tidak | Variabel template dinamis. Maksimal 1MB; berlaku saat send_mode=0 atau send_mode=1. |
| label_id | string | tidak | ID label untuk pengiriman ini |
| label_name | string | tidak | Nama label untuk pengiriman ini |
| headers | object | tidak | Header. Maksimal 1KB. |
| attachments | array[object] | tidak | Lampiran. Total ukuran tidak boleh melebihi 10MB. |
| content | string | ya | Konten lampiran. Base64 encoding. |
| filename | string | ya | Nama file lampiran, contoh: news.pdf |
| disposition | string | ya | Nilai: attachment atau inline. |
| content_id | string | ya | Jika disposition=inline dan file gambar, harus diisi |
| settings | object | tidak | Pengaturan pengiriman |
| send_mode | int | tidak | Metode pengiriman. 0=terpisah; 1=broadcast. Default 0 |
| return_email_id | boolean | tidak | Apakah mengembalikan email ID, default true |
| sandbox | boolean | tidak | Mode sandbox, default false. Jika true, email tidak dikirim, hanya validasi parameter |
| notification | boolean | tidak | Tanda terima baca, default false. Tanda terima default ke from, harus digunakan dengan receiving route |
| open_tracking | boolean | tidak | Aktifkan pelacakan terbuka, default sistem. Hanya berlaku saat send_mode=0 |
| click_tracking | boolean | tidak | Aktifkan pelacakan klik, default sistem. Hanya berlaku saat send_mode=0 |
| unsubscribe_tracking | boolean | tidak | Aktifkan pelacakan berhenti langganan, default sistem. Hanya berlaku saat send_mode=0 |
| unsubscribe_page_id | array[int] | tidak | Halaman berhenti langganan kustom, default sistem. Hanya berlaku saat send_mode=0 |
| calendar | object | ya | Pengaturan Kalender |
| time_zone_id | string | ya | Contoh: Daftar zona waktu kalender |
| start_time | string | ya | Waktu mulai rapat. Format: yyyy-MM-dd HH:mm:ss |
| end_time | string | ya | Waktu akhir rapat. Format: yyyy-MM-dd HH:mm:ss |
| title | string | ya | Judul rapat. Maksimal 256 karakter. |
| organizer | object | ya | Penyelenggara |
| name | string | tidak | Nama penyelenggara. Maksimal 64 karakter. |
| string | ya | Email penyelenggara | |
| location | string | ya | Lokasi. Maksimal 128 karakter. |
| description | string | tidak | Deskripsi rapat. Maksimal 1024 karakter. |
| participators | array[object] | tidak | Peserta |
| name | string | tidak | Nama peserta. Maksimal 64 karakter. |
| string | ya | Email peserta | |
| alarm_min_before | integer | tidak | Pengingat menit sebelum rapat. Rentang 1~60. |
| action | object | tidak | Operasi kalender |
| name | string | tidak | Nama operasi. Nilai: create, update, cancel. Default create. |
| uid | string | tidak | Diisi saat update dan cancel. Nilai uid dikembalikan oleh API saat membuat email kalender. |
Tips:
- Html dan plain tidak boleh kosong bersamaan.
- Preview_text hanya berlaku jika html ada.
- Vars untuk penggantian variabel konten email. Format: json object
{"varname": ["value1","value2"]}. - dynamic_vars untuk template dinamis. Format:
[{"varname1":"value1","varname2":"value2"}]. - label_id dan label_name, isi salah satu. Jika label_name tidak ada, sistem akan membuat otomatis. Jika keduanya diisi, label_name diabaikan.
- headers untuk kustomisasi header pesan. Format: json object. Kunci tidak boleh mengandung:
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 - Jika disposition=inline, lampiran gambar akan dirender di body email sebagai gambar inline. content_id wajib diisi dan unik.
- custom_args akan disisipkan di header, data WebHook berikutnya akan dikembalikan ke Anda. Kunci tidak boleh mengandung simbol ".".
- request_id untuk mencegah pengiriman ganda, berlaku 1 jam.
- Ukuran email maksimal 70MB.
Contoh Permintaan
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 adalah ..."
},
"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": "judul rapat",
"organizer": {
"name": "David",
"email": "david@mail.engagelab.com"
},
"location": "ruang208",
"description": "halo",
"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": ""
}'
Respons-sukses
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": ""
}
Respons-error
HTTP Status :400
{
"code": 30801,
"message": "From tidak boleh kosong"
}
Pengiriman MIME
URL
https://email.api.engagelab.cc/v1/mail/send_mime
Content-Type:
Content-Type: application/json;charset=utf-8
Metode HTTP Request
POST
Header Permintaan
| Header | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| Authorization | String | ya | Basic base64(api_user:api_key) |
Parameter Permintaan
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| from | string | tidak | Pengirim. Contoh: support@mail.engagelab.com, EngageLab Team<support@mail.engagelab.com>. Jika ingin menampilkan nama produk atau perusahaan, gunakan format Nama<email>. |
| to | array[string] | tidak | Penerima. Maksimal 100 alamat. Contoh: ["xjm@hotmail.com","xjm2@gmail.com"] |
| body | object | ya | Pengaturan email |
| custom_args | object | tidak | Field opsional kustom pelanggan. Maksimal 1KB. Kunci tidak boleh mengandung simbol ".". |
| request_id | string | tidak | ID permintaan pengiriman; maksimal 128 karakter. |
Body
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| cc | array[string] | tidak | Cc. Maksimal 100 alamat. Hanya berlaku jika send_mode=1. |
| bcc | array[string] | tidak | Bcc. Maksimal 100 alamat. Hanya berlaku jika send_mode=1. |
| reply_to | array[string] | tidak | Balasan ke. Maksimal 3 alamat; jika tidak diisi, balasan ke alamat from. |
| subject | string | tidak | Subjek. Maksimal 256 karakter; mendukung variabel, emoji. |
| content | object | ya | Body email |
| raw_message | string | ya | Konten email. Format harus MIME. |
| vars | object | tidak | Variabel. Maksimal 1MB; berlaku saat send_mode=0 atau send_mode=1. |
| label_id | string | tidak | ID label untuk pengiriman ini |
| label_name | string | tidak | Nama label untuk pengiriman ini |
| headers | object | tidak | Header email. Maksimal 1KB. |
| settings | object | tidak | Pengaturan pengiriman |
| send_mode | int | tidak | Metode pengiriman. 0=terpisah; 1=broadcast. Nilai to adalah alamat daftar alamat. Default 0 |
| return_email_id | boolean | tidak | Apakah mengembalikan email ID, default true |
| sandbox | boolean | tidak | Mode sandbox, default false. Jika true, email tidak dikirim, hanya validasi parameter |
| notification | boolean | tidak | Tanda terima baca, default false. Tanda terima default ke from, harus digunakan dengan receiving route |
| open_tracking | boolean | tidak | Aktifkan pelacakan terbuka, default sistem. Berlaku saat send_mode=0/1 |
| click_tracking | boolean | tidak | Aktifkan pelacakan klik, default sistem. Berlaku saat send_mode=0/1 |
| unsubscribe_tracking | boolean | tidak | Aktifkan pelacakan berhenti langganan, default sistem. Berlaku saat send_mode=0/1 |
| unsubscribe_page_id | array[int] | tidak | Halaman berhenti langganan kustom, default sistem. Berlaku saat send_mode=0/1 |
Catatan:
- vars untuk penggantian variabel konten email, format: JSON object
{"varname":["value1","value2"]}. - label_id atau label_name, hanya salah satu yang berlaku. Jika keduanya diisi, label_id yang digunakan. Jika label_name tidak ada, sistem otomatis membuatnya.
- headers untuk kustomisasi header email, format: JSON object. Kunci tidak boleh mengandung:
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 - custom_args adalah konten kustom yang didefinisikan pelanggan, disematkan di header email; akan dikembalikan ke pelanggan pada data WebHook berikutnya.
- request_id untuk mencegah pengiriman ganda, berlaku 1 jam.
- Ukuran email maksimal 70MB.
Contoh Permintaan
curl -X POST -H 'Content-Type: application/json; charset=utf-8' \
-H 'Authorization: YXBpX3VzZXI6YXBpX2tleQ==' \
--data '{
"from": "EngageLab Newsletter <newsletter@mail.engagelab.com>",
"to": ["111@qq.com", "222<222@qq.com>"],
"body": {
"reply_to": ["reply@mail.engagelab.com"],
"subject": "%date% Newsletter ",
"content": {
"raw_message": "Date: Fri, 8 Aug 2025 18:33:00 +0800 (CST)\r\nFrom: TEST <test@trip.com>\r\nReply-To: test_reply@trip.com\r\nTo: fan_tang@trip.com\r\nMessage-ID:....... ",
},
"vars": { },
"label_id": 100233,
"headers": {},
"settings": {
"send_mode": 0,
"return_email_id": true,
"sandbox": false,
"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_mime'
Contoh Respons
Respons-sukses
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":null
}
Respons-error
HTTP Status :400
{
"code": 30893,
"message": "custom_args harus dalam format json"
}










