X-SMTPAPI Bidang Ekstensi
X-SMTPAPI adalah metode personalisasi email yang disediakan EngageLab untuk pengembang.
EngageLab akan membaca informasi pada header dengan key X-SMTPAPI. Jika header ini ditemukan, EngageLab akan mengurai value-nya untuk mengubah cara pemrosesan email. Pengembang dapat menggunakan bidang ini baik saat mengakses melalui SMTP maupun API.
Akses API:
x_smtpapi = {
"to": ["d@hotmail.com",'i@hotmail.com'],
"sub": {
"%name%": ['jack', 'rose'],
"%money%": ['199', '299'],
},
}
params['xsmtpapi'] = simplejson.dumps(x_smtpapi)
Akses SMTP:
x_smtpapi = {
"to": ["d@hotmail.com",'i@hotmail.com'],
"sub": {
"%name%": ['jack', 'rose'],
"%money%": ['199', '299'],
},
}
msg['X-SMTPAPI'] = Header(base64.b64encode(simplejson.dumps(x_smtpapi)))
Server SMTP akan memeriksa format header dengan **key** `X-SMTPAPI` pada email. Jika format tidak sesuai, akan muncul error `xsmtpapi error`.
Perhatian:
1. Saat menggunakan SMTP, X-SMTPAPI harus menjadi header terakhir. Jika tidak, dapat menyebabkan error 'xsmtpapi error'
2. Saat menggunakan SMTP, x-smtpapi harus dienkode dengan Base64. Jika tidak, setelah permintaan SMTP berhasil, EngageLab akan menolak dan menilai email tidak valid - `worker: invalid XSMTP-API`
3. Saat menggunakan API, Anda bisa langsung mengirim string JSON tanpa encoding Base64
4. Panjang total X-SMTPAPI tidak boleh melebihi 1MB
Struktur dan penggunaan string JSON pada value dijelaskan di bawah ini:
to berisi array alamat penerima untuk menentukan siapa saja penerima email.
{
"to": ["ben@engagelab.com", "joe@engagelab.com"]
}
Catatan:
todi sini akan menimpa parameter penerimato- Jumlah penerima
totidak boleh lebih dari 1000 - Jika header email kurang dari 1MB, tidak ada tindakan khusus
- Jika header email lebih dari 1MB, akan diperiksa satu per satu berdasarkan jumlah alamat. Jika kurang dari 10KB, email bisa dikirim. Jika lebih dari 10KB, email tidak bisa dikirim
sub adalah array asosiatif di mana key adalah variabel dan value adalah array nilai pengganti.
Penjelasan: setiap "variabel" sesuai dengan "array nilai pengganti". Saat mengganti isi email, setiap "Penerima" akan mendapatkan nilai variabel sesuai urutan pada "array penerima".
Contoh:
# Isi email
Yth. %name%:
Halo! Jumlah konsumsi Anda bulan ini: %money% .
#---------------------------------------------------
# X-SMTPAPI
{
"to": ["ben@engagelab.com", "joe@engagelab.com"],
"sub":
{
"%name%": ["Ben", "Joe"],
"%money%":[288, 497]
}
}
#---------------------------------------------------
# ben@engagelab.com akan menerima:
Yth. Ben:
Halo! Jumlah konsumsi Anda bulan ini: 288 .
#---------------------------------------------------
# joe@engagelab.com akan menerima:
Yth. Joe:
Halo! Jumlah konsumsi Anda bulan ini: 497 .
apps adalah array asosiatif berisi nama aplikasi (Unsubscribe, Open, Click) beserta pengaturannya. Pengaturan ini akan menimpa pengaturan pada akun pengguna.
x_smtpapi =
{
"to": ["xxx@qq.com"],
"sub": {"%name%": ["Joe"]},
"filters": {
"subscription_tracking": { # Pelacakan berhenti berlangganan
"settings": { "enable": "1" }
},
"open_tracking": { # Pelacakan email dibuka
"settings": { "enable": "1" }
},
"click_tracking": { # Pelacakan klik
"settings": { "enable": "1" }
}
}
}
page_id
- Page_id sesuai dengan field ID dari halaman berhenti berlangganan yang dibuat di "Pengaturan" - "Unsubscribe" - "Halaman Unsubscribe" pada konsol EngageLab
- Pelanggan harus membuat halaman berhenti berlangganan terlebih dahulu di konsol EngageLab sebelum mengirim, lalu pada page_id diatur ke ID yang sesuai
- Kirim melalui parameter page_id. Nilai diatur sebagai ID halaman berhenti berlangganan. Maka tautan dan halaman unsubscribe akan menggunakan bahasa dan gaya yang sudah dikonfigurasi
- Prioritas parameter page_id lebih tinggi dibanding pengaturan default halaman unsubscribe pada API saat pengiriman
- Mendukung bentuk array untuk menentukan halaman unsubscribe, jumlahnya harus sama dengan jumlah to di xsmtpapi. Jika tidak sama, maka akan digunakan default page_id pada apiUser tersebut.
Contoh:
x_smtpapi =
{
"to": ["xxx@qq.com", "xxx@hotmail.com", "xxx@gmail.com"],
"sub":{"%name%": ["Joe", "Ben", "Michael"]},
"settings":
{
"unsubscribe":
{"page_id": [1, 2, 3]}
}
}










