Template Email Lanjutan
Burung
25 Mar 2016
1 min read

Poin Penting
Template SparkPost mendukung komposisi email sederhana dan lanjutan, termasuk HTML, teks, logika kondisional, loop, dan data dinamis per penerima melalui variabel substitusi.
Array dapat diberikan ke data substitusi, memungkinkan Anda untuk melakukan loop melalui item (misalnya, daftar file, aktivitas terbaru, baris tabel kustom) untuk menghasilkan bagian yang dipersonalisasi untuk setiap penerima.
Tiga kurung kurawal
{{{ }}}memungkinkan Anda untuk menyisipkan HTML mentah yang tidak di-escape, yang penting ketika data substitusi Anda sudah mengandung markup.Lampiran dapat dikirim dengan mudah saat menggunakan endpoint transmisi (
content.attachments), yang mengabstraksi batas MIME dan encoding untuk Anda.Gambar inline bekerja serupa dengan lampiran tetapi dirender dalam body menggunakan referensi
cid:.Template itu sendiri tidak mendukung lampiran secara native, tetapi Anda dapat tetap menyertakannya dengan membuat email RFC 5322 lengkap dengan bagian MIME dan menyimpan itu sebagai template
email_rfc822.Ketika membangun template RFC 5322 mentah, substitusi masih berfungsi — tetapi hanya di header, dan bagian MIME HTML dan teks pertama.
Menggunakan klien email bahasa pemrograman Anda (misalnya, JavaMail) menawarkan jalur lain: menghasilkan email MIME lengkap secara programatis dan mengirim melalui API transmisi SparkPost.
Untuk pemeliharaan, jaga markup dan data terpisah kapan pun memungkinkan—terutama saat membangun template yang mencakup loop atau beberapa bagian MIME.
Fitur template lanjutan (kondisional, ekspresi, iterasi array) memungkinkan pengembang untuk membangun email yang canggih dan dipersonalisasi tanpa harus menulis ulang seluruh template per kasus penggunaan.
Sorotan Tanya jawab
Apakah template SparkPost dapat menangani loop dan array?
Ya. Template dapat mengiterasi array menggunakan konstruksi
for each. Ini memungkinkan tabel dinamis, daftar, atau blok HTML yang diulang untuk setiap penerima.Untuk apa tiga kurung kurawal digunakan?
{{{ variable }}}menyisipkan HTML mentah tanpa pengkodean. Ini diperlukan ketika data penggantian Anda sudah termasuk markup HTML.Bisakah saya mengirim lampiran dengan template?
Tidak secara langsung melalui bidang template — tetapi Anda dapat dengan menyimpan template
email_rfc822yang menyertakan bagian lampiran MIME.Apakah substitusi masih berfungsi dalam template RFC 5322?
Ya, tetapi hanya dalam header dan bagian MIME HTML + teks pertama.
Kapan saya harus menggunakan endpoint transmisi daripada template?
Ketika mengirim lampiran dinamis, gambar inline, atau ketika Anda memerlukan SparkPost untuk mengelola MIME secara otomatis.
Apakah lebih baik untuk menyematkan logika tampilan atau menyimpannya terpisah?
Praktik terbaik adalah menjaga markup tampilan dan data Anda terpisah. Gunakan template untuk presentasi dan kirimkan data pengganti yang bersih dan terstruktur.
Bisakah saya menghasilkan email MIME lengkap menggunakan pustaka pemrograman?
Ya. Perpustakaan seperti JavaMail memungkinkan Anda untuk menyusun pesan RFC 5322 secara programatis dan mengirimkannya melalui API transmisi SparkPost.
Apakah fitur template lanjutan banyak digunakan?
Secara mengejutkan, sedikit pengembang yang menggunakannya, tetapi mereka membuka personalisasi yang kuat: loop, kondisional, logika inline, dan struktur MIME kustom.
Mengapa saya perlu template RFC 5322?
Hanya ketika mengirim email multi-bagian yang kompleks (lampiran, jenis MIME kustom) yang tidak didukung oleh abstraksi template standar SparkPost.
Post ini ditujukan kepada pengembang yang ingin memanfaatkan kemampuan template email SparkPost. Diasumsikan Anda nyaman dengan membaca konten JSON dan mengikuti alur pemrograman dasar. Saat istilah yang mungkin baru bagi Anda diperkenalkan seperti RFC 5322, teks tersebut terhubung dengan referensi sumbernya.
Dengan itu di luar jalan, mari kita langsung masuk.
Kemampuan template dan transmisi SparkPost membuat pengiriman email menjadi mudah. Kemampuan tersebut memberikan abstraksi untuk konten teks dan HTML yang berarti sebagian besar waktu tidak perlu secara langsung mengkodekan format email mentah yang didefinisikan dalam RFC 5322 yang sebelumnya dikenal sebagai (RFC 822). Namun terkadang Anda mungkin ingin membuat pesan yang lebih kompleks yang memiliki bagian Multipurpose Internet Mail Extensions (MIME) lain yang tidak langsung terpapar melalui antarmuka RESTful SparkPost.
Post ini ditujukan kepada pengembang yang ingin memanfaatkan kemampuan template email SparkPost. Diasumsikan Anda nyaman dengan membaca konten JSON dan mengikuti alur pemrograman dasar. Saat istilah yang mungkin baru bagi Anda diperkenalkan seperti RFC 5322, teks tersebut terhubung dengan referensi sumbernya.
Dengan itu di luar jalan, mari kita langsung masuk.
Kemampuan template dan transmisi SparkPost membuat pengiriman email menjadi mudah. Kemampuan tersebut memberikan abstraksi untuk konten teks dan HTML yang berarti sebagian besar waktu tidak perlu secara langsung mengkodekan format email mentah yang didefinisikan dalam RFC 5322 yang sebelumnya dikenal sebagai (RFC 822). Namun terkadang Anda mungkin ingin membuat pesan yang lebih kompleks yang memiliki bagian Multipurpose Internet Mail Extensions (MIME) lain yang tidak langsung terpapar melalui antarmuka RESTful SparkPost.
Post ini ditujukan kepada pengembang yang ingin memanfaatkan kemampuan template email SparkPost. Diasumsikan Anda nyaman dengan membaca konten JSON dan mengikuti alur pemrograman dasar. Saat istilah yang mungkin baru bagi Anda diperkenalkan seperti RFC 5322, teks tersebut terhubung dengan referensi sumbernya.
Dengan itu di luar jalan, mari kita langsung masuk.
Kemampuan template dan transmisi SparkPost membuat pengiriman email menjadi mudah. Kemampuan tersebut memberikan abstraksi untuk konten teks dan HTML yang berarti sebagian besar waktu tidak perlu secara langsung mengkodekan format email mentah yang didefinisikan dalam RFC 5322 yang sebelumnya dikenal sebagai (RFC 822). Namun terkadang Anda mungkin ingin membuat pesan yang lebih kompleks yang memiliki bagian Multipurpose Internet Mail Extensions (MIME) lain yang tidak langsung terpapar melalui antarmuka RESTful SparkPost.
Mengirim Template
Berita baiknya adalah bahwa membuat konten RFC 5322 adalah bagian yang sulit. Mulai sekarang, mengirimkan template itu dengan SparkPost persis sama seperti mengirimkan template lainnya.
Berikut adalah cara kita mengirimkan template itu dan mengisi data substitusi:
{ "campaign_id": "MyCampaign", "return_path": "myReturnPath@yourdomain.com", "substitution_data": { "replyto": "myReplyToh@yourdomain.com", "from": "MyFrom@yourdomain.com", "subject": "my subject", "body1": "Extra content for the HTML part", "body2": "Extra content for the text part" }, "recipients": [ { "substitution_data": {}, "address": { "email": "test1@domain.com", "name": "test1" } } ], "content": { "template_id": "xxxxxxx", "use_draft_template": true } }
Berita baiknya adalah bahwa membuat konten RFC 5322 adalah bagian yang sulit. Mulai sekarang, mengirimkan template itu dengan SparkPost persis sama seperti mengirimkan template lainnya.
Berikut adalah cara kita mengirimkan template itu dan mengisi data substitusi:
{ "campaign_id": "MyCampaign", "return_path": "myReturnPath@yourdomain.com", "substitution_data": { "replyto": "myReplyToh@yourdomain.com", "from": "MyFrom@yourdomain.com", "subject": "my subject", "body1": "Extra content for the HTML part", "body2": "Extra content for the text part" }, "recipients": [ { "substitution_data": {}, "address": { "email": "test1@domain.com", "name": "test1" } } ], "content": { "template_id": "xxxxxxx", "use_draft_template": true } }
Berita baiknya adalah bahwa membuat konten RFC 5322 adalah bagian yang sulit. Mulai sekarang, mengirimkan template itu dengan SparkPost persis sama seperti mengirimkan template lainnya.
Berikut adalah cara kita mengirimkan template itu dan mengisi data substitusi:
{ "campaign_id": "MyCampaign", "return_path": "myReturnPath@yourdomain.com", "substitution_data": { "replyto": "myReplyToh@yourdomain.com", "from": "MyFrom@yourdomain.com", "subject": "my subject", "body1": "Extra content for the HTML part", "body2": "Extra content for the text part" }, "recipients": [ { "substitution_data": {}, "address": { "email": "test1@domain.com", "name": "test1" } } ], "content": { "template_id": "xxxxxxx", "use_draft_template": true } }
Komposisi Email Sederhana
Pertama, mari kita tinjau skenario hari cerah untuk mengirim email. Gunakan transmission endpoint untuk menyediakan text dan HTML konten. Di belakang layar, SparkPost menangani penyusunan email RFC 5322 yang valid. SparkPost akan menyisipkan variabel substitusi dari substitution_data ke dalam teks dan konten HTML. Ini adalah cara yang kuat untuk menghasilkan konten kustom bagi setiap penerima dalam template yang umum.
Berikut adalah contoh transmission dengan konten HTML dan teks dengan substitution_data.
{ "options": { "open_tracking": true, "click_tracking": true }, "campaign_id": "christmas_campaign", "return_path": "bounces-christmas-campaign@domain.com", "metadata": { "user_type": "students" }, "substitution_data": { "sender": "Big Store Team" }, "recipients": [ { "return_path": "123@bounces.domain.com", "address": { "email": "wilma@domain.com", "name": "Wilma Flintstone" }, "tags": [ "greeting", "prehistoric", "fred", "flintstone" ], "metadata": { "place": "Bedrock" }, "substitution_data": { "customer_type": "Platinum" } } ], "content": { "from": { "name": "Fred Flintstone", "email": "fred@domain.com" }, "subject": "Big Christmas savings!", "reply_to": "Christmas Sales <sales@domain.com>", "headers": { "X-Customer-Campaign-ID": "christmas_campaign" }, "text": "Hi {{address.name}} \nSave big this Christmas in your area {{place}}! \nClick http://www.mysite.com and get huge discount\n Hurry, this offer is only to {{user_type}}\n {{sender}}", "html": "<p>Hi {{address.name}} <br>Save big this Christmas in your area {{place}}! <br>Click <a href=\"http://www.mysite.com\">here</a> and get huge discount</p><p>Hurry, this offer is only to {{user_type}}</p><p>{{sender}}</p>" } }
Kemampuan Substitusi Overview
Kemampuan | Deskripsi |
|---|---|
Substitusi variabel dasar | Menyisipkan nilai dinamis tunggal ke dalam konten teks atau HTML |
Logika bersyarat | Menampilkan konten berbeda berdasarkan evaluasi boolean atau ekspresi |
Iterasi array | Mengulang melalui array (misalnya, daftar file) untuk menghasilkan konten yang berulang |
Penyisipan HTML mentah ({{{ }}}) | Mengizinkan HTML tidak terhindar untuk situasi di mana markup berasal dari sumber data |
Personalisasi per penerima | Memastikan konten yang sepenuhnya unik bagi setiap penerima |
Pertama, mari kita tinjau skenario hari cerah untuk mengirim email. Gunakan transmission endpoint untuk menyediakan text dan HTML konten. Di belakang layar, SparkPost menangani penyusunan email RFC 5322 yang valid. SparkPost akan menyisipkan variabel substitusi dari substitution_data ke dalam teks dan konten HTML. Ini adalah cara yang kuat untuk menghasilkan konten kustom bagi setiap penerima dalam template yang umum.
Berikut adalah contoh transmission dengan konten HTML dan teks dengan substitution_data.
{ "options": { "open_tracking": true, "click_tracking": true }, "campaign_id": "christmas_campaign", "return_path": "bounces-christmas-campaign@domain.com", "metadata": { "user_type": "students" }, "substitution_data": { "sender": "Big Store Team" }, "recipients": [ { "return_path": "123@bounces.domain.com", "address": { "email": "wilma@domain.com", "name": "Wilma Flintstone" }, "tags": [ "greeting", "prehistoric", "fred", "flintstone" ], "metadata": { "place": "Bedrock" }, "substitution_data": { "customer_type": "Platinum" } } ], "content": { "from": { "name": "Fred Flintstone", "email": "fred@domain.com" }, "subject": "Big Christmas savings!", "reply_to": "Christmas Sales <sales@domain.com>", "headers": { "X-Customer-Campaign-ID": "christmas_campaign" }, "text": "Hi {{address.name}} \nSave big this Christmas in your area {{place}}! \nClick http://www.mysite.com and get huge discount\n Hurry, this offer is only to {{user_type}}\n {{sender}}", "html": "<p>Hi {{address.name}} <br>Save big this Christmas in your area {{place}}! <br>Click <a href=\"http://www.mysite.com\">here</a> and get huge discount</p><p>Hurry, this offer is only to {{user_type}}</p><p>{{sender}}</p>" } }
Kemampuan Substitusi Overview
Kemampuan | Deskripsi |
|---|---|
Substitusi variabel dasar | Menyisipkan nilai dinamis tunggal ke dalam konten teks atau HTML |
Logika bersyarat | Menampilkan konten berbeda berdasarkan evaluasi boolean atau ekspresi |
Iterasi array | Mengulang melalui array (misalnya, daftar file) untuk menghasilkan konten yang berulang |
Penyisipan HTML mentah ({{{ }}}) | Mengizinkan HTML tidak terhindar untuk situasi di mana markup berasal dari sumber data |
Personalisasi per penerima | Memastikan konten yang sepenuhnya unik bagi setiap penerima |
Pertama, mari kita tinjau skenario hari cerah untuk mengirim email. Gunakan transmission endpoint untuk menyediakan text dan HTML konten. Di belakang layar, SparkPost menangani penyusunan email RFC 5322 yang valid. SparkPost akan menyisipkan variabel substitusi dari substitution_data ke dalam teks dan konten HTML. Ini adalah cara yang kuat untuk menghasilkan konten kustom bagi setiap penerima dalam template yang umum.
Berikut adalah contoh transmission dengan konten HTML dan teks dengan substitution_data.
{ "options": { "open_tracking": true, "click_tracking": true }, "campaign_id": "christmas_campaign", "return_path": "bounces-christmas-campaign@domain.com", "metadata": { "user_type": "students" }, "substitution_data": { "sender": "Big Store Team" }, "recipients": [ { "return_path": "123@bounces.domain.com", "address": { "email": "wilma@domain.com", "name": "Wilma Flintstone" }, "tags": [ "greeting", "prehistoric", "fred", "flintstone" ], "metadata": { "place": "Bedrock" }, "substitution_data": { "customer_type": "Platinum" } } ], "content": { "from": { "name": "Fred Flintstone", "email": "fred@domain.com" }, "subject": "Big Christmas savings!", "reply_to": "Christmas Sales <sales@domain.com>", "headers": { "X-Customer-Campaign-ID": "christmas_campaign" }, "text": "Hi {{address.name}} \nSave big this Christmas in your area {{place}}! \nClick http://www.mysite.com and get huge discount\n Hurry, this offer is only to {{user_type}}\n {{sender}}", "html": "<p>Hi {{address.name}} <br>Save big this Christmas in your area {{place}}! <br>Click <a href=\"http://www.mysite.com\">here</a> and get huge discount</p><p>Hurry, this offer is only to {{user_type}}</p><p>{{sender}}</p>" } }
Kemampuan Substitusi Overview
Kemampuan | Deskripsi |
|---|---|
Substitusi variabel dasar | Menyisipkan nilai dinamis tunggal ke dalam konten teks atau HTML |
Logika bersyarat | Menampilkan konten berbeda berdasarkan evaluasi boolean atau ekspresi |
Iterasi array | Mengulang melalui array (misalnya, daftar file) untuk menghasilkan konten yang berulang |
Penyisipan HTML mentah ({{{ }}}) | Mengizinkan HTML tidak terhindar untuk situasi di mana markup berasal dari sumber data |
Personalisasi per penerima | Memastikan konten yang sepenuhnya unik bagi setiap penerima |
Substitusi Array Data
Banyak orang menyadari bahwa titik akhir transmisi dan templat SparkPost dapat melakukan konten sederhana substitusi dalam header email dan badan email. Namun banyak yang mengabaikan kemampuan untuk menyediakan konten bersyarat atau array data yang juga dapat disubstitusi. Anda juga dapat memberikan konten unik per penerima. Dalam contoh ini kami mengirim array tautan unik kepada setiap penerima.
Ini dicapai dengan memberikan array data JSON yang akan dimasukkan ke dalam badan email. Setelah data diberikan, SparkPost akan menggunakan logika dalam templat untuk mengisinya.
Dalam contoh ini SparkPost akan mencari data substitusi yang disebut “files_html” dan melakukan “untuk setiap” pada setiap elemen dalam array. Ini akan membuat baris dengan nilai “file” dalam elemen “files_html”. Perhatikan kurung kurawal ganda di sekitar “loop_var.file“. Ini karena setiap elemen array mengandung HTML dan kami perlu memberi tahu server untuk menggunakannya apa adanya dan tidak meloloskannya. Bagian teks akan menjadi label teks sederhana dan URL ke file.
<table> {{each files_html}} <tr> <td>{{{loop_var.file}}}</td> </tr> {{ end }} </table>
Ini adalah contoh kerja yang sudah lengkap:
Banyak orang menyadari bahwa titik akhir transmisi dan templat SparkPost dapat melakukan konten sederhana substitusi dalam header email dan badan email. Namun banyak yang mengabaikan kemampuan untuk menyediakan konten bersyarat atau array data yang juga dapat disubstitusi. Anda juga dapat memberikan konten unik per penerima. Dalam contoh ini kami mengirim array tautan unik kepada setiap penerima.
Ini dicapai dengan memberikan array data JSON yang akan dimasukkan ke dalam badan email. Setelah data diberikan, SparkPost akan menggunakan logika dalam templat untuk mengisinya.
Dalam contoh ini SparkPost akan mencari data substitusi yang disebut “files_html” dan melakukan “untuk setiap” pada setiap elemen dalam array. Ini akan membuat baris dengan nilai “file” dalam elemen “files_html”. Perhatikan kurung kurawal ganda di sekitar “loop_var.file“. Ini karena setiap elemen array mengandung HTML dan kami perlu memberi tahu server untuk menggunakannya apa adanya dan tidak meloloskannya. Bagian teks akan menjadi label teks sederhana dan URL ke file.
<table> {{each files_html}} <tr> <td>{{{loop_var.file}}}</td> </tr> {{ end }} </table>
Ini adalah contoh kerja yang sudah lengkap:
Banyak orang menyadari bahwa titik akhir transmisi dan templat SparkPost dapat melakukan konten sederhana substitusi dalam header email dan badan email. Namun banyak yang mengabaikan kemampuan untuk menyediakan konten bersyarat atau array data yang juga dapat disubstitusi. Anda juga dapat memberikan konten unik per penerima. Dalam contoh ini kami mengirim array tautan unik kepada setiap penerima.
Ini dicapai dengan memberikan array data JSON yang akan dimasukkan ke dalam badan email. Setelah data diberikan, SparkPost akan menggunakan logika dalam templat untuk mengisinya.
Dalam contoh ini SparkPost akan mencari data substitusi yang disebut “files_html” dan melakukan “untuk setiap” pada setiap elemen dalam array. Ini akan membuat baris dengan nilai “file” dalam elemen “files_html”. Perhatikan kurung kurawal ganda di sekitar “loop_var.file“. Ini karena setiap elemen array mengandung HTML dan kami perlu memberi tahu server untuk menggunakannya apa adanya dan tidak meloloskannya. Bagian teks akan menjadi label teks sederhana dan URL ke file.
<table> {{each files_html}} <tr> <td>{{{loop_var.file}}}</td> </tr> {{ end }} </table>
Ini adalah contoh kerja yang sudah lengkap:
Lampiran dalam Kemampuan Transmisi
Titik akhir transmisi juga menyediakan abstraksi untuk mengirim lampiran. Di bawah ini Anda akan melihat lampiran ditentukan dalam array content.attachments di mana setiap objek dalam array menggambarkan item lampiran individu. Seperti sebelumnya, SparkPost akan mengurus encoding teks, HTML, substitusi dan mengiterasi melalui array lampiran untuk mengkodekan pesan email yang dibentuk dengan baik.
Praktik terbaik menyatakan bahwa mengirim lampiran sebaiknya dihindari kecuali secara eksplisit diperlukan sebagai bagian dari layanan Anda.
Di bawah ini adalah field yang diperlukan untuk sebuah lampiran:
tipe: Tipe MIME dari lampiran
nama: Nama file lampiran
data: Data file yang di-encode dalam Base64
Field yang Diperlukan untuk Lampiran
Field | Arti |
|---|---|
tipe | Tipe MIME dari lampiran |
nama | Nama file seperti yang akan muncul kepada penerima |
data | Payload file yang di-encode dalam Base64 |
Ini adalah bagaimana sebuah lampiran terlihat di dalam stanza konten transmisi:
"content": { "attachments": [ { "type": "audio/mp3", "name": "voicemail.mp3", "data": "TVAzIERhdGEK" } ] }
Anda juga dapat mengirim “gambar dalam sebaris” dalam suatu transmisi. Ini sangat mirip dengan lampiran dan ditentukan dalam array content.inline_images di mana masing-masing objek inline_image mirip dengan objek lampiran yang ditunjukkan di atas.
Titik akhir transmisi juga menyediakan abstraksi untuk mengirim lampiran. Di bawah ini Anda akan melihat lampiran ditentukan dalam array content.attachments di mana setiap objek dalam array menggambarkan item lampiran individu. Seperti sebelumnya, SparkPost akan mengurus encoding teks, HTML, substitusi dan mengiterasi melalui array lampiran untuk mengkodekan pesan email yang dibentuk dengan baik.
Praktik terbaik menyatakan bahwa mengirim lampiran sebaiknya dihindari kecuali secara eksplisit diperlukan sebagai bagian dari layanan Anda.
Di bawah ini adalah field yang diperlukan untuk sebuah lampiran:
tipe: Tipe MIME dari lampiran
nama: Nama file lampiran
data: Data file yang di-encode dalam Base64
Field yang Diperlukan untuk Lampiran
Field | Arti |
|---|---|
tipe | Tipe MIME dari lampiran |
nama | Nama file seperti yang akan muncul kepada penerima |
data | Payload file yang di-encode dalam Base64 |
Ini adalah bagaimana sebuah lampiran terlihat di dalam stanza konten transmisi:
"content": { "attachments": [ { "type": "audio/mp3", "name": "voicemail.mp3", "data": "TVAzIERhdGEK" } ] }
Anda juga dapat mengirim “gambar dalam sebaris” dalam suatu transmisi. Ini sangat mirip dengan lampiran dan ditentukan dalam array content.inline_images di mana masing-masing objek inline_image mirip dengan objek lampiran yang ditunjukkan di atas.
Titik akhir transmisi juga menyediakan abstraksi untuk mengirim lampiran. Di bawah ini Anda akan melihat lampiran ditentukan dalam array content.attachments di mana setiap objek dalam array menggambarkan item lampiran individu. Seperti sebelumnya, SparkPost akan mengurus encoding teks, HTML, substitusi dan mengiterasi melalui array lampiran untuk mengkodekan pesan email yang dibentuk dengan baik.
Praktik terbaik menyatakan bahwa mengirim lampiran sebaiknya dihindari kecuali secara eksplisit diperlukan sebagai bagian dari layanan Anda.
Di bawah ini adalah field yang diperlukan untuk sebuah lampiran:
tipe: Tipe MIME dari lampiran
nama: Nama file lampiran
data: Data file yang di-encode dalam Base64
Field yang Diperlukan untuk Lampiran
Field | Arti |
|---|---|
tipe | Tipe MIME dari lampiran |
nama | Nama file seperti yang akan muncul kepada penerima |
data | Payload file yang di-encode dalam Base64 |
Ini adalah bagaimana sebuah lampiran terlihat di dalam stanza konten transmisi:
"content": { "attachments": [ { "type": "audio/mp3", "name": "voicemail.mp3", "data": "TVAzIERhdGEK" } ] }
Anda juga dapat mengirim “gambar dalam sebaris” dalam suatu transmisi. Ini sangat mirip dengan lampiran dan ditentukan dalam array content.inline_images di mana masing-masing objek inline_image mirip dengan objek lampiran yang ditunjukkan di atas.
Lampiran dalam Template
Sekarang kita memiliki latar belakang yang tepat untuk mengirim lampiran dengan endpoint transmisi, mari kita lihat bagaimana cara melakukannya dengan template. Pada saat penulisan ini, belum ada abstraksi lampiran seperti yang Anda temukan untuk transmisi inline. Seseorang mungkin menyimpulkan bahwa template tidak dapat dibuat dengan lampiran. Anda akan sebagian benar, tetapi ada cara lain, meskipun Anda tidak akan lagi terisolasi dari format RFC 5322.
Anda dapat melakukan lampiran dalam template dengan mengkodekan konten RFC 5322 sendiri yang mencakup lampiran. Kabar baiknya adalah Anda tidak akan kehilangan kemampuan untuk tetap menggunakan Data Substitusi dalam header email, bagian HTML dan bagian teks Anda. Harap diketahui bahwa jenis template ini membatasi substitusi pada header dan bagian HTML pertama serta bagian teks pertama.
Limitasi Template RFC 5322
Limitasi | Deskripsi |
|---|---|
Substitusi terbatas | Hanya berlaku untuk header, bagian HTML pertama, dan bagian teks pertama |
Penanganan MIME manual | Pengembang harus membangun semua batasan MIME dan bagian lampiran |
Overhead pemeliharaan yang lebih tinggi | Lebih sulit untuk diperbarui, diaudit, dan versi |
Tidak ramah abstraksi | Melewatkan kenyamanan dari sistem template SparkPost |
Berikut adalah contoh bagaimana melakukan ini.
Email RFC822
Buat email RFC 5322 Anda dengan data substitusi yang Anda inginkan. Saya membuat ini di klien email saya dan mengirimkannya kepada diri saya sendiri. Setelah saya menerimanya, saya menyalin sumbernya dan mengganti bidang yang ingin saya substitusi secara dinamis.
MIME-Version: 1.0 Reply-To: {{replyto}} Subject: {{subject}} From: {{from}} To: {{address.email}} Content-Type: multipart/mixed; boundary="001a113c48b0b89d92052d3051da" --001a113c48b0b89d92052d3051da Content-Type: multipart/alternative; boundary="001a113c48b0b89d89052d3051d8" --001a113c48b0b89d89052d3051d8 Content-Type: text/plain; charset=UTF-8 Email with a *text attachment*. {{body2}} --001a113c48b0b89d89052d3051d8 Content-Type: text/html; charset=UTF-8 <div dir="ltr"> <div>Email with a <i>text attachment</i>.</div> {{body1}} <
Bagian MIME terakhir dalam pesan ini yang akan Anda lihat Content-Disposition: attachment; filename=myfile.txt”. Di sinilah nama file ditentukan. Konten lampiran Anda akan jauh lebih kompleks, tetapi contoh ini berusaha untuk menjaga kesederhanaan.
Sekarang kita memiliki latar belakang yang tepat untuk mengirim lampiran dengan endpoint transmisi, mari kita lihat bagaimana cara melakukannya dengan template. Pada saat penulisan ini, belum ada abstraksi lampiran seperti yang Anda temukan untuk transmisi inline. Seseorang mungkin menyimpulkan bahwa template tidak dapat dibuat dengan lampiran. Anda akan sebagian benar, tetapi ada cara lain, meskipun Anda tidak akan lagi terisolasi dari format RFC 5322.
Anda dapat melakukan lampiran dalam template dengan mengkodekan konten RFC 5322 sendiri yang mencakup lampiran. Kabar baiknya adalah Anda tidak akan kehilangan kemampuan untuk tetap menggunakan Data Substitusi dalam header email, bagian HTML dan bagian teks Anda. Harap diketahui bahwa jenis template ini membatasi substitusi pada header dan bagian HTML pertama serta bagian teks pertama.
Limitasi Template RFC 5322
Limitasi | Deskripsi |
|---|---|
Substitusi terbatas | Hanya berlaku untuk header, bagian HTML pertama, dan bagian teks pertama |
Penanganan MIME manual | Pengembang harus membangun semua batasan MIME dan bagian lampiran |
Overhead pemeliharaan yang lebih tinggi | Lebih sulit untuk diperbarui, diaudit, dan versi |
Tidak ramah abstraksi | Melewatkan kenyamanan dari sistem template SparkPost |
Berikut adalah contoh bagaimana melakukan ini.
Email RFC822
Buat email RFC 5322 Anda dengan data substitusi yang Anda inginkan. Saya membuat ini di klien email saya dan mengirimkannya kepada diri saya sendiri. Setelah saya menerimanya, saya menyalin sumbernya dan mengganti bidang yang ingin saya substitusi secara dinamis.
MIME-Version: 1.0 Reply-To: {{replyto}} Subject: {{subject}} From: {{from}} To: {{address.email}} Content-Type: multipart/mixed; boundary="001a113c48b0b89d92052d3051da" --001a113c48b0b89d92052d3051da Content-Type: multipart/alternative; boundary="001a113c48b0b89d89052d3051d8" --001a113c48b0b89d89052d3051d8 Content-Type: text/plain; charset=UTF-8 Email with a *text attachment*. {{body2}} --001a113c48b0b89d89052d3051d8 Content-Type: text/html; charset=UTF-8 <div dir="ltr"> <div>Email with a <i>text attachment</i>.</div> {{body1}} <
Bagian MIME terakhir dalam pesan ini yang akan Anda lihat Content-Disposition: attachment; filename=myfile.txt”. Di sinilah nama file ditentukan. Konten lampiran Anda akan jauh lebih kompleks, tetapi contoh ini berusaha untuk menjaga kesederhanaan.
Sekarang kita memiliki latar belakang yang tepat untuk mengirim lampiran dengan endpoint transmisi, mari kita lihat bagaimana cara melakukannya dengan template. Pada saat penulisan ini, belum ada abstraksi lampiran seperti yang Anda temukan untuk transmisi inline. Seseorang mungkin menyimpulkan bahwa template tidak dapat dibuat dengan lampiran. Anda akan sebagian benar, tetapi ada cara lain, meskipun Anda tidak akan lagi terisolasi dari format RFC 5322.
Anda dapat melakukan lampiran dalam template dengan mengkodekan konten RFC 5322 sendiri yang mencakup lampiran. Kabar baiknya adalah Anda tidak akan kehilangan kemampuan untuk tetap menggunakan Data Substitusi dalam header email, bagian HTML dan bagian teks Anda. Harap diketahui bahwa jenis template ini membatasi substitusi pada header dan bagian HTML pertama serta bagian teks pertama.
Limitasi Template RFC 5322
Limitasi | Deskripsi |
|---|---|
Substitusi terbatas | Hanya berlaku untuk header, bagian HTML pertama, dan bagian teks pertama |
Penanganan MIME manual | Pengembang harus membangun semua batasan MIME dan bagian lampiran |
Overhead pemeliharaan yang lebih tinggi | Lebih sulit untuk diperbarui, diaudit, dan versi |
Tidak ramah abstraksi | Melewatkan kenyamanan dari sistem template SparkPost |
Berikut adalah contoh bagaimana melakukan ini.
Email RFC822
Buat email RFC 5322 Anda dengan data substitusi yang Anda inginkan. Saya membuat ini di klien email saya dan mengirimkannya kepada diri saya sendiri. Setelah saya menerimanya, saya menyalin sumbernya dan mengganti bidang yang ingin saya substitusi secara dinamis.
MIME-Version: 1.0 Reply-To: {{replyto}} Subject: {{subject}} From: {{from}} To: {{address.email}} Content-Type: multipart/mixed; boundary="001a113c48b0b89d92052d3051da" --001a113c48b0b89d92052d3051da Content-Type: multipart/alternative; boundary="001a113c48b0b89d89052d3051d8" --001a113c48b0b89d89052d3051d8 Content-Type: text/plain; charset=UTF-8 Email with a *text attachment*. {{body2}} --001a113c48b0b89d89052d3051d8 Content-Type: text/html; charset=UTF-8 <div dir="ltr"> <div>Email with a <i>text attachment</i>.</div> {{body1}} <
Bagian MIME terakhir dalam pesan ini yang akan Anda lihat Content-Disposition: attachment; filename=myfile.txt”. Di sinilah nama file ditentukan. Konten lampiran Anda akan jauh lebih kompleks, tetapi contoh ini berusaha untuk menjaga kesederhanaan.
Template Tersimpan
Setelah Anda memiliki email RFC 5322 yang valid, simpanlah menggunakan bentuk email_rfc822 dari endpoint template daripada menggunakan teks dan HTML fields. Berikut adalah contoh dari apa yang terlihat seperti isi untuk pesan tersebut:
{ "content": { "email_rfc822": "MIME-Version: 1.0\nReply-To: {{replyto}}\nSubject: {{subject}}\nFrom: {{from}}\nTo: {{address.email}}\nContent-Type: multipart/mixed; boundary=001a113c48b0b89d92052d3051da\n\n--001a113c48b0b89d92052d3051da\nContent-Type: multipart/alternative; boundary=001a113c48b0b89d89052d3051d8\n\n--001a113c48b0b89d89052d3051d8\nContent-Type: text/plain; charset=UTF-8\n\nEmail with a *text attachment*.\n\n{{body2}}\n\n--001a113c48b0b89d89052d3051d8\nContent-Type: text/html; charset=UTF-8\n\n<div dir=\"ltr\"><div>Email with a <i>text attachment</i>.</div>\n\n{{body1}}\n</div>\n\n--001a113c48b0b89d89052d3051d8--\n--001a113c48b0b89d92052d3051da\nContent-Type: text/plain; charset=US-ASCII; name=\"myfile.txt\"\nContent-Disposition: attachment; filename=\"myfile.txt\"\nContent-Transfer-Encoding: base64\nX-Attachment-Id: f_ild455ce0\n\nVGhpcyBpcyBteSBzaW1wbGUgdGV4dCBmaWxlLgo=\n--001a113c48b0b89d92052d3051da--" }, "name": "_TMP_TEMPLATE_TEST" }
Ketika permintaan selesai, SparkPost akan merespons dengan pengidentifikasi unik untuk template baru Anda. Sebagai contoh xxxxxxx.
Setelah Anda memiliki email RFC 5322 yang valid, simpanlah menggunakan bentuk email_rfc822 dari endpoint template daripada menggunakan teks dan HTML fields. Berikut adalah contoh dari apa yang terlihat seperti isi untuk pesan tersebut:
{ "content": { "email_rfc822": "MIME-Version: 1.0\nReply-To: {{replyto}}\nSubject: {{subject}}\nFrom: {{from}}\nTo: {{address.email}}\nContent-Type: multipart/mixed; boundary=001a113c48b0b89d92052d3051da\n\n--001a113c48b0b89d92052d3051da\nContent-Type: multipart/alternative; boundary=001a113c48b0b89d89052d3051d8\n\n--001a113c48b0b89d89052d3051d8\nContent-Type: text/plain; charset=UTF-8\n\nEmail with a *text attachment*.\n\n{{body2}}\n\n--001a113c48b0b89d89052d3051d8\nContent-Type: text/html; charset=UTF-8\n\n<div dir=\"ltr\"><div>Email with a <i>text attachment</i>.</div>\n\n{{body1}}\n</div>\n\n--001a113c48b0b89d89052d3051d8--\n--001a113c48b0b89d92052d3051da\nContent-Type: text/plain; charset=US-ASCII; name=\"myfile.txt\"\nContent-Disposition: attachment; filename=\"myfile.txt\"\nContent-Transfer-Encoding: base64\nX-Attachment-Id: f_ild455ce0\n\nVGhpcyBpcyBteSBzaW1wbGUgdGV4dCBmaWxlLgo=\n--001a113c48b0b89d92052d3051da--" }, "name": "_TMP_TEMPLATE_TEST" }
Ketika permintaan selesai, SparkPost akan merespons dengan pengidentifikasi unik untuk template baru Anda. Sebagai contoh xxxxxxx.
Setelah Anda memiliki email RFC 5322 yang valid, simpanlah menggunakan bentuk email_rfc822 dari endpoint template daripada menggunakan teks dan HTML fields. Berikut adalah contoh dari apa yang terlihat seperti isi untuk pesan tersebut:
{ "content": { "email_rfc822": "MIME-Version: 1.0\nReply-To: {{replyto}}\nSubject: {{subject}}\nFrom: {{from}}\nTo: {{address.email}}\nContent-Type: multipart/mixed; boundary=001a113c48b0b89d92052d3051da\n\n--001a113c48b0b89d92052d3051da\nContent-Type: multipart/alternative; boundary=001a113c48b0b89d89052d3051d8\n\n--001a113c48b0b89d89052d3051d8\nContent-Type: text/plain; charset=UTF-8\n\nEmail with a *text attachment*.\n\n{{body2}}\n\n--001a113c48b0b89d89052d3051d8\nContent-Type: text/html; charset=UTF-8\n\n<div dir=\"ltr\"><div>Email with a <i>text attachment</i>.</div>\n\n{{body1}}\n</div>\n\n--001a113c48b0b89d89052d3051d8--\n--001a113c48b0b89d92052d3051da\nContent-Type: text/plain; charset=US-ASCII; name=\"myfile.txt\"\nContent-Disposition: attachment; filename=\"myfile.txt\"\nContent-Transfer-Encoding: base64\nX-Attachment-Id: f_ild455ce0\n\nVGhpcyBpcyBteSBzaW1wbGUgdGV4dCBmaWxlLgo=\n--001a113c48b0b89d92052d3051da--" }, "name": "_TMP_TEMPLATE_TEST" }
Ketika permintaan selesai, SparkPost akan merespons dengan pengidentifikasi unik untuk template baru Anda. Sebagai contoh xxxxxxx.
Kesimpulan
sekarang Anda melihat bagaimana SparkPost dapat digunakan untuk mengirim email dengan hampir semua kompleksitas, Anda mungkin ingin melihat "SparkPost Mendukung Pengiriman Email di Apple Watch" atau melihat sintaks pengganti untuk melihat bagaimana ia dapat digunakan dengan "jika maka lain", "ekspresi dalam kondisi" atau "iterasi array" langsung di dalam konten templat atau transmisi Anda.
sekarang Anda melihat bagaimana SparkPost dapat digunakan untuk mengirim email dengan hampir semua kompleksitas, Anda mungkin ingin melihat "SparkPost Mendukung Pengiriman Email di Apple Watch" atau melihat sintaks pengganti untuk melihat bagaimana ia dapat digunakan dengan "jika maka lain", "ekspresi dalam kondisi" atau "iterasi array" langsung di dalam konten templat atau transmisi Anda.
sekarang Anda melihat bagaimana SparkPost dapat digunakan untuk mengirim email dengan hampir semua kompleksitas, Anda mungkin ingin melihat "SparkPost Mendukung Pengiriman Email di Apple Watch" atau melihat sintaks pengganti untuk melihat bagaimana ia dapat digunakan dengan "jika maka lain", "ekspresi dalam kondisi" atau "iterasi array" langsung di dalam konten templat atau transmisi Anda.



