Menggunakan template untuk mengirim email yang dipersonalisasi dengan Amazon SES API - Layanan Email Sederhana Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan template untuk mengirim email yang dipersonalisasi dengan Amazon SES API

Di Amazon SES Anda dapat mengirim email template baik dengan menggunakan template yang disimpan atau dengan menggunakan template inline.

  • Template tersimpan - Mengacu pada Templatesumber daya yang dibuat dan disimpan SES dengan menggunakan CreateEmailTemplate operasi di Amazon SES v2API. Template berisi subjek dan isi email yang berisi variabel (placeholder) sejalan dengan konten tertulis. Nama template yang disimpan dan data dinamis ke variabel placeholder dalam template disediakan saat memanggil operasi SendEmail atau SendBulkEmail v2API.

    Template yang disimpan dapat dengan mudah digunakan kembali dan dapat menghemat waktu dan tenaga Anda saat mengirim jenis email serupa. Alih-alih membuat setiap email dari awal, Anda hanya perlu membuat struktur dasar dan desain sekali, lalu cukup perbarui konten dinamis dalam template.

  • Template sebarisTemplate Sumber daya tidak digunakan, melainkan subjek dan isi email yang berisi variabel (placeholder) sejalan dengan konten tertulis bersama dengan nilai untuk variabel placeholder tersebut disediakan saat memanggil operasi atau v2. SendEmail SendBulkEmail API

    Template inline merampingkan proses pengiriman email massal dengan menghilangkan kebutuhan untuk mengelola sumber daya template di SES akun Anda dan menyederhanakan proses integrasi dengan memungkinkan Anda untuk memasukkan konten template langsung dalam logika aplikasi Anda. Mereka tidak dihitung terhadap batas 20.000 templat per. Wilayah AWS

Batasan berikut berlaku saat menggunakan templat tersimpan:

  • Anda dapat membuat hingga 20.000 template email di masing-masing Wilayah AWS.

  • Setiap template dapat berukuran hingga 500 KB, termasuk teks dan HTML bagian-bagiannya.

Batas berikut berlaku saat menggunakan templat sebaris:

  • Setiap JSON file input dapat berukuran hingga 1 MB, termasuk teks dan HTML bagian.

Berikut ini berlaku untuk templat tersimpan dan sebaris:

  • Tidak ada batasan jumlah variabel pengganti yang dapat digunakan.

  • Anda dapat mengirim email ke hingga 50 objek tujuan di setiap panggilan ke SendBulkEmail operasi. DestinationObjek dapat berisi beberapa penerima yang didefinisikan dalam ToAddresses, CcAddresses, dan BccAddresses. Jumlah tujuan yang dapat Anda hubungi dalam satu panggilan ke v2 API mungkin dibatasi oleh tarif pengiriman maksimum akun Anda. Untuk informasi selengkapnya, lihat Mengelola batas pengiriman Amazon SES Anda.

Bab ini mencakup prosedur dengan contoh untuk menggunakan templat tersimpan dan templat sebaris.

catatan

Prosedur di bagian ini menganggap bahwa Anda telah menginstal dan mengonfigurasi AWS CLI. Untuk informasi selengkapnya tentang menginstal dan mengonfigurasi AWS CLI, lihat Panduan AWS Command Line Interface Pengguna.

(Opsional) Bagian 1: Mengatur pemberitahuan acara Kegagalan Rendering

Jika Anda mengirim email yang berisi konten personalisasi yang tidak valid, Amazon SES mungkin menerima pesan tersebut, tetapi tidak dapat mengirimkannya. Untuk alasan ini, jika Anda berencana untuk mengirim email yang dipersonalisasi, Anda harus mengonfigurasi SES untuk mengirim pemberitahuan peristiwa Kegagalan Rendering melalui AmazonSNS. Ketika Anda menerima notifikasi peristiwa Kegagalan Rendering, Anda dapat mengidentifikasi pesan yang berisi konten yang tidak valid, memperbaiki masalah, dan mengirim pesan kembali.

Prosedur di bagian ini bersifat opsional, namun sangat disarankan.

Untuk mengonfigurasi notifikasi peristiwa Kegagalan Rendering
  1. Buat SNS topik Amazon. Untuk prosedur, lihat Buat Topik di Panduan Developer Amazon Simple Notification Service.

  2. Berlangganan ke SNS topik Amazon. Misalnya, jika Anda ingin menerima notifikasi Kegagalan Rendering melalui email, berlangganan titik akhir email (yaitu, alamat email Anda) ke topik tersebut.

    Untuk prosedur, lihat Berlangganan Topik di Panduan Developer Amazon Simple Notification Service.

  3. Selesaikan prosedur Siapkan tujuan peristiwa Amazon SNS untuk penerbitan peristiwa untuk menyiapkan set konfigurasi Anda untuk memublikasikan peristiwa Kegagalan Rendering ke SNS topik Amazon Anda.

(Opsional) Bagian 2: Buat template email

Jika Anda berniat menggunakan template yang disimpan, bagian ini akan menunjukkan cara menggunakan API operasi CreateEmailTemplateSESv2 untuk membuat template. Anda dapat melewati langkah ini jika Anda ingin menggunakan template inline.

Prosedur ini menganggap Anda telah menginstal dan mengonfigurasi AWS CLI. Untuk informasi selengkapnya tentang menginstal dan mengonfigurasi AWS CLI, lihat Panduan AWS Command Line Interface Pengguna.

Untuk membuat templat
  1. Dalam editor teks, buat file baru dan tempel kode berikut untuk menyesuaikannya sesuai kebutuhan.

    { "TemplateName": "MyTemplate", "TemplateContent": { "Subject": "Greetings, {{name}}!", "Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.", "Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>" } }

    Kode ini berisi properti berikut:

    • TemplateName— Nama sumber Template daya. Ketika Anda mengirim email, Anda merujuk ke nama ini.

    • TemplateContent— Sebuah wadah untuk atribut berikut:

      • SubjectPart— Baris subjek email. Properti ini mungkin berisi tanda pengganti. Tanda ini menggunakan format berikut: {{tagname}}. Ketika Anda mengirim email, Anda dapat menentukan nilai untuk tagname untuk setiap tujuan.

      • HtmlPart- HTML Tubuh email. Properti ini mungkin berisi tanda pengganti. Contoh sebelumnya mencakup dua tanda: {{name}} dan {{favoriteanimal}}.

      • TextPart— Tubuh teks email. Penerima yang klien emailnya tidak menampilkan HTML konten akan melihat versi email ini. Properti ini juga dapat berisi tag pengganti.

  2. Sesuaikan contoh sebelumnya sesuai dengan kebutuhan Anda, lalu simpan file sebagai mytemplate.json.

  3. Pada baris perintah, ketik perintah berikut untuk membuat template baru menggunakan API operasi CreateEmailTemplatev2:

    aws sesv2 create-email-template --cli-input-json file://mytemplate.json

Bagian 3: Kirim email yang dipersonalisasi

Anda dapat menggunakan dua API operasi SES v2 berikut untuk mengirim email menggunakan templat tersimpan atau templat sebaris:

  • SendEmailOperasi ini berguna untuk mengirim email yang disesuaikan ke objek tujuan tunggal. APIDestinationObjek v2 dapat berisi ToAddresses, CcAddresses, dan BccAddressesproperti. Ini dapat digunakan dalam kombinasi apa pun dan dapat berisi satu atau lebih alamat email yang akan menerima email yang sama.

  • SendBulkEmailOperasi ini berguna untuk mengirim email unik ke beberapa objek tujuan dalam satu panggilan ke v2API.

Bagian ini memberikan contoh bagaimana menggunakan AWS CLI untuk mengirim email template menggunakan kedua operasi pengiriman ini.

Mengirim email template ke objek tujuan tunggal

Anda dapat menggunakan SendEmailoperasi untuk mengirim email ke satu atau beberapa penerima yang ditentukan dalam satu objek tujuan. Semua penerima di objek Destination akan menerima email yang sama.

Untuk mengirim email template ke objek tujuan tunggal
  1. Bergantung pada apakah Anda ingin menggunakan templat tersimpan atau templat sebaris, pilih contoh kode masing-masing untuk ditempelkan ke editor teks, sesuaikan sesuai kebutuhan.

    Stored template code example

    Perhatikan bahwa template yang Anda buat pada langkah sebelumnya MyTemplate, sedang direferensikan sebagai nilai untuk TemplateName parameter.

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "Destination": { "ToAddresses": [ "alejandro.rosalez@example.com", "jimmy.jet@example.com" ] }, "Content": { "Template": { "TemplateName": "MyTemplate", "TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }" } }, "ConfigurationSetName": "ConfigSet" }

    Kode ini berisi properti berikut:

    • FromEmailAddress— Alamat email pengirim.

    • Tujuan - Objek yang berisi penerima email yang ditentukan dalam ToAddresses, CcAddresses, dan BccAddressesproperti. Ini dapat digunakan dalam kombinasi apa pun dan dapat berisi satu atau lebih alamat email yang akan menerima email yang sama.

    • TemplateName— Nama sumber Template daya untuk diterapkan ke email.

    • TemplateData— JSON String yang lolos yang berisi pasangan kunci-nilai. Kunci sesuai dengan variabel yang didefinisikan dalam TemplateContent properti dalam template yang disimpan, misalnya,{{name}}. Nilai mewakili konten yang menggantikan variabel.

    • ConfigurationSetName— Nama konfigurasi yang akan digunakan saat mengirim email.

      catatan

      Sebaiknya gunakan set konfigurasi yang dikonfigurasi untuk mempublikasikan peristiwa Kegagalan Rendering ke AmazonSNS. Untuk informasi selengkapnya, lihat (Opsional) Bagian 1: Mengatur pemberitahuan acara Kegagalan Rendering.

    Inline template code example

    Perhatikan bahwa TemplateContent properti (yang biasanya akan didefinisikan dalam template tersimpan), sedang didefinisikan sebaris bersama dengan TemplateData properti yang membuat ini template inline.

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "Destination": { "ToAddresses": [ "alejandro.rosalez@example.com", "jimmy.jet@example.com" ] }, "Content": { "Template": { "TemplateContent": { "Subject": "Greetings, {{name}}!", "Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.", "Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>" }, "TemplateData": "{ \"name\":\"Alejandro\", \"favoriteanimal\": \"alligator\" }" } }, "ConfigurationSetName": "ConfigSet" }

    Kode ini berisi properti berikut:

    • FromEmailAddress— Alamat email pengirim.

    • Tujuan - Objek yang berisi penerima email yang ditentukan dalam ToAddresses, CcAddresses, dan BccAddressesproperti. Ini dapat digunakan dalam kombinasi apa pun dan dapat berisi satu atau lebih alamat email yang akan menerima email yang sama.

    • TemplateContent— Sebuah wadah untuk atribut berikut:

      • SubjectPart— Baris subjek email. Properti ini mungkin berisi tanda pengganti. Tanda ini menggunakan format berikut: {{tagname}}. Ketika Anda mengirim email, Anda dapat menentukan nilai untuk tagname untuk setiap tujuan.

      • HtmlPart- HTML Tubuh email. Properti ini mungkin berisi tanda pengganti. Contoh sebelumnya mencakup dua tanda: {{name}} dan {{favoriteanimal}}.

      • TextPart— Tubuh teks email. Penerima yang klien emailnya tidak menampilkan HTML konten akan melihat versi email ini. Properti ini juga dapat berisi tag pengganti.

    • TemplateData— JSON String yang lolos yang berisi pasangan kunci-nilai. Kunci sesuai dengan variabel yang didefinisikan dalam TemplateContent properti dalam file ini, misalnya,{{name}}. Nilai mewakili konten yang menggantikan variabel.

    • ConfigurationSetName— Nama konfigurasi yang akan digunakan saat mengirim email.

      catatan

      Sebaiknya gunakan set konfigurasi yang dikonfigurasi untuk mempublikasikan peristiwa Kegagalan Rendering ke AmazonSNS. Untuk informasi selengkapnya, lihat (Opsional) Bagian 1: Mengatur pemberitahuan acara Kegagalan Rendering.

  2. Sesuaikan contoh sebelumnya sesuai dengan kebutuhan Anda, lalu simpan file sebagai myemail.json.

  3. Pada baris perintah, ketik API perintah v2 berikut untuk mengirim email:

    aws sesv2 send-email --cli-input-json file://myemail.json

Mengirim email template ke beberapa objek tujuan

Anda dapat menggunakan SendBulkEmailoperasi untuk mengirim email ke beberapa objek tujuan dalam satu panggilan ke SES v2API. SESmengirimkan email unik ke penerima atau penerima di setiap Destinationobjek.

Untuk mengirim email template ke beberapa objek tujuan
  1. Bergantung pada apakah Anda ingin menggunakan templat tersimpan atau templat sebaris, pilih contoh kode masing-masing untuk ditempelkan ke editor teks, sesuaikan sesuai kebutuhan.

    Stored template code example

    Perhatikan bahwa template yang Anda buat pada langkah sebelumnya MyTemplate, sedang direferensikan sebagai nilai untuk TemplateName parameter.

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "DefaultContent": { "Template": { "TemplateName": "MyTemplate", "TemplateData": "{ \"name\":\"friend\", \"favoriteanimal\":\"unknown\" }" } }, "BulkEmailEntries": [ { "Destination": { "ToAddresses": [ "anaya.iyengar@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }" } } }, { "Destination": { "ToAddresses": [ "liu.jie@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }" } } }, { "Destination": { "ToAddresses": [ "shirley.rodriguez@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }" } } }, { "Destination": { "ToAddresses": [ "richard.roe@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{}" } } } ], "ConfigurationSetName": "ConfigSet" }

    Kode ini berisi properti berikut:

    • FromEmailAddress— Alamat email pengirim.

    • DefaultContent— JSON Objek yang berisi TemplateName dan TemplateData objek.

    • TemplateName— Nama sumber Template daya untuk diterapkan ke email.

    • TemplateData— Berisi pasangan kunci-nilai yang akan digunakan jika ReplacementEmailContent objek berisi JSON objek kosong,{}, di ReplacementTemplateData properti.

    • BulkEmailEntries— Array yang berisi satu atau lebih Destination objek.

    • Tujuan - Objek yang berisi penerima email yang ditentukan dalam ToAddresses, CcAddresses, dan BccAddressesproperti. Ini dapat digunakan dalam kombinasi apa pun dan dapat berisi satu atau lebih alamat email yang akan menerima email yang sama.

    • ReplacementTemplateData— JSON String yang lolos yang berisi pasangan kunci-nilai. Kunci sesuai dengan variabel dalam template, misalnya,{{name}}. Nilai-nilai menunjukkan konten yang menggantikan variabel di email. (Jika JSON string di sini kosong, ditunjukkan oleh{}, pasangan kunci-nilai didefinisikan dalam TemplateData properti dalam DefaultContent objek akan digunakan.)

    • ConfigurationSetName— Nama konfigurasi yang akan digunakan saat mengirim email.

      catatan

      Sebaiknya gunakan set konfigurasi yang dikonfigurasi untuk mempublikasikan peristiwa Kegagalan Rendering ke AmazonSNS. Untuk informasi selengkapnya, lihat (Opsional) Bagian 1: Mengatur pemberitahuan acara Kegagalan Rendering.

    Inline template code example

    Perhatikan bahwa TemplateContent properti (yang biasanya akan didefinisikan dalam template tersimpan), sedang didefinisikan sebaris bersama dengan TemplateData properti yang membuat ini template inline.

    { "FromEmailAddress": "Mary Major <mary.major@example.com>", "DefaultContent": { "Template": { "TemplateContent": { "Subject": "Greetings, {{name}}!", "Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.", "Html": "<h1>Hello {{name}},</h1><p>Your favorite animal is {{favoriteanimal}}.</p>" }, "TemplateData": "{ \"name\":\"friend\", \"favoriteanimal\":\"unknown\" }" } }, "BulkEmailEntries": [ { "Destination": { "ToAddresses": [ "anaya.iyengar@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Anaya\", \"favoriteanimal\":\"angelfish\" }" } } }, { "Destination": { "ToAddresses": [ "liu.jie@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Liu\", \"favoriteanimal\":\"lion\" }" } } }, { "Destination": { "ToAddresses": [ "shirley.rodriguez@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{ \"name\":\"Shirley\", \"favoriteanimal\":\"shark\" }" } } }, { "Destination": { "ToAddresses": [ "richard.roe@example.com" ] }, "ReplacementEmailContent": { "ReplacementTemplate": { "ReplacementTemplateData": "{}" } } } ], "ConfigurationSetName": "ConfigSet" }

    Kode ini berisi properti berikut:

    • FromEmailAddress— Alamat email pengirim.

    • DefaultContent— JSON Objek yang berisi TemplateContent dan TemplateData objek.

    • TemplateContent— Sebuah wadah untuk atribut berikut:

      • SubjectPart— Baris subjek email. Properti ini mungkin berisi tanda pengganti. Tanda ini menggunakan format berikut: {{tagname}}. Ketika Anda mengirim email, Anda dapat menentukan nilai untuk tagname untuk setiap tujuan.

      • HtmlPart- HTML Tubuh email. Properti ini mungkin berisi tanda pengganti. Contoh sebelumnya mencakup dua tanda: {{name}} dan {{favoriteanimal}}.

      • TextPart— Tubuh teks email. Penerima yang klien emailnya tidak menampilkan HTML konten akan melihat versi email ini. Properti ini juga dapat berisi tag pengganti.

    • TemplateData— Berisi pasangan kunci-nilai yang akan digunakan jika ReplacementEmailContent objek berisi JSON objek kosong,{}, di ReplacementTemplateData properti.

    • BulkEmailEntries— Array yang berisi satu atau lebih Destination objek.

    • Tujuan - Objek yang berisi penerima email yang ditentukan dalam ToAddresses, CcAddresses, dan BccAddressesproperti. Ini dapat digunakan dalam kombinasi apa pun dan dapat berisi satu atau lebih alamat email yang akan menerima email yang sama.

    • ReplacementTemplateData— JSON String yang lolos yang berisi pasangan kunci-nilai. Kunci sesuai dengan variabel yang didefinisikan dalam TemplateContent properti dalam file ini, misalnya,{{name}}. Nilai-nilai menunjukkan konten yang menggantikan variabel di email. (Jika JSON string di sini kosong, ditunjukkan oleh{}, pasangan kunci-nilai didefinisikan dalam TemplateData properti dalam DefaultContent objek akan digunakan.)

    • ConfigurationSetName— Nama konfigurasi yang akan digunakan saat mengirim email.

      catatan

      Sebaiknya gunakan set konfigurasi yang dikonfigurasi untuk mempublikasikan peristiwa Kegagalan Rendering ke AmazonSNS. Untuk informasi selengkapnya, lihat (Opsional) Bagian 1: Mengatur pemberitahuan acara Kegagalan Rendering.

  2. Ubah nilai dalam kode di langkah sebelumnya untuk memenuhi kebutuhan Anda, lalu simpan file sebagai mybulkemail.json.

  3. Pada baris perintah, ketik API perintah v2 berikut untuk mengirim email massal:

    aws sesv2 send-bulk-email --cli-input-json file://mybulkemail.json