

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
<a name="send-personalized-email-api"></a>

Di Amazon SES Anda dapat mengirim email template baik dengan menggunakan template yang *disimpan atau dengan menggunakan template* *inline*.
+ **Template tersimpan** - Mengacu pada [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Template.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Template.html)sumber daya yang dibuat dan disimpan di SES dengan menggunakan `CreateEmailTemplate` operasi di Amazon SES v2 API. 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 API `SendEmail` atau `SendBulkEmail` v2.

  *Template yang disimpan* dapat dengan mudah digunakan kembali dan dapat menghemat waktu dan tenaga Anda saat mengirim jenis email yang 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 sebaris** — `Template` 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 API atau v2. `SendEmail` `SendBulkEmail`

  *Template inline* merampingkan proses pengiriman email massal dengan menghilangkan kebutuhan untuk mengelola sumber daya template di akun SES 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 templat dapat berukuran hingga 500KB, termasuk bagian teks dan HTML.

Batas berikut berlaku saat menggunakan *templat sebaris*:
+ Setiap file JSON input dapat berukuran hingga 1 MB, termasuk bagian teks dan HTML.

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. [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html)Objek dapat berisi beberapa penerima yang didefinisikan dalam **ToAddresses**, **CcAddresses**, dan **BccAddresses**. Jumlah tujuan yang dapat Anda hubungi dalam satu panggilan ke API v2 mungkin dibatasi oleh tarif pengiriman maksimum akun Anda. Untuk informasi selengkapnya, lihat [Mengelola batas pengiriman Amazon SES Anda](manage-sending-quotas.md).

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](https://docs.aws.amazon.com/cli/latest/userguide/).

## (Opsional) Bagian 1: Mengatur pemberitahuan acara Kegagalan Rendering
<a name="send-personalized-email-set-up-notifications"></a>

 Jika Anda mengirim email berisi konten personalisasi yang tidak valid, Amazon SES mungkin menerima pesan tersebut, namun 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 Amazon SNS. 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 topik Amazon SNS. Untuk prosedur, lihat [Buat Topik](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) di *Panduan Developer Amazon Simple Notification Service*.

1. Langganan topik Amazon SNS. 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](https://docs.aws.amazon.com/sns/latest/dg/SubscribeTopic.html) di *Panduan Developer Amazon Simple Notification Service*.

1. Selesaikan prosedur di [Siapkan tujuan peristiwa Amazon SNS untuk penerbitan peristiwa](event-publishing-add-event-destination-sns.md) untuk menyiapkan set konfigurasi Anda untuk mempublikasikan peristiwa Kegagalan Rendering ke topik Amazon SNS Anda.

## (Opsional) Bagian 2: Buat template email
<a name="send-personalized-email-create-template"></a>

Jika Anda berniat menggunakan *template yang disimpan*, bagian ini akan menunjukkan cara menggunakan operasi API [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html)SES v2 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](https://docs.aws.amazon.com/cli/latest/userguide/).

**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:
     + **Subjek** - 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.
     + **Html—Tubuh** HTML dari email. Properti ini mungkin berisi tanda pengganti. Contoh sebelumnya mencakup dua tanda: `{{name}}` dan `{{favoriteanimal}}`.
     + **Teks** — Tubuh teks email. Penerima yang klien emailnya tidak menampilkan konten HTML akan melihat versi email ini. Properti ini juga dapat berisi tag pengganti.

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

1. Pada baris perintah, ketik perintah berikut untuk membuat template baru menggunakan operasi API [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_CreateEmailTemplate.html)v2:

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

## Bagian 3: Kirim email yang dipersonalisasi
<a name="send-personalized-email-api-operations"></a>

Anda dapat menggunakan dua operasi API SES v2 berikut untuk mengirim email menggunakan *templat tersimpan atau templat* *sebaris*:
+ [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html)Operasi ini berguna untuk mengirim email yang disesuaikan ke objek tujuan tunggal. [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html)Objek API v2 dapat berisi *ToAddresses*, *CcAddresses*, dan *BccAddresses*properti. Ini dapat digunakan dalam kombinasi apa pun dan dapat berisi satu atau lebih alamat email yang akan menerima email yang sama.
+ [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html)Operasi ini berguna untuk mengirim email unik ke beberapa objek tujuan dalam satu panggilan ke API v2.

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

### Mengirim email template ke objek tujuan tunggal
<a name="send-templated-email-single-destination"></a>

Anda dapat menggunakan [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendEmail.html)operasi untuk mengirim email ke satu atau beberapa penerima yang ditentukan dalam satu objek tujuan. Semua penerima di objek [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html) 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 *BccAddresses*properti. 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**— String JSON 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**  
Kami merekomendasikan bahwa Anda menggunakan satu set konfigurasi yang dikonfigurasi untuk mempublikasikan Rendering kegagalan peristiwa untuk Amazon SNS. Untuk informasi selengkapnya, lihat [(Opsional) Bagian 1: Mengatur pemberitahuan acara Kegagalan Rendering](#send-personalized-email-set-up-notifications).

------
#### [ 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 *BccAddresses*properti. 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:
     + **Subjek** - 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.
     + **Html—Tubuh** HTML dari email. Properti ini mungkin berisi tanda pengganti. Contoh sebelumnya mencakup dua tanda: `{{name}}` dan `{{favoriteanimal}}`.
     + **Teks** — Tubuh teks email. Penerima yang klien emailnya tidak menampilkan konten HTML akan melihat versi email ini. Properti ini juga dapat berisi tag pengganti.
   + **TemplateData**— String JSON 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**  
Kami merekomendasikan bahwa Anda menggunakan satu set konfigurasi yang dikonfigurasi untuk mempublikasikan Rendering kegagalan peristiwa untuk Amazon SNS. Untuk informasi selengkapnya, lihat [(Opsional) Bagian 1: Mengatur pemberitahuan acara Kegagalan Rendering](#send-personalized-email-set-up-notifications).

------

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

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

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

### Mengirim email template ke beberapa objek tujuan
<a name="send-templated-email-multiple-destinations"></a>

Anda dapat menggunakan [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_SendBulkEmail.html)operasi untuk mengirim email ke beberapa objek tujuan dalam satu panggilan ke SES v2 API. SES mengirimkan email unik ke penerima atau penerima di setiap [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Destination.html)objek.

**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**— Sebuah objek JSON 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 objek JSON kosong,`{}`, di properti. `ReplacementTemplateData`
   + **BulkEmailEntries**— Array yang berisi satu atau lebih `Destination` objek.
   + **Tujuan** - Objek yang berisi penerima email yang ditentukan dalam *ToAddresses*, *CcAddresses*, dan *BccAddresses*properti. Ini dapat digunakan dalam kombinasi apa pun dan dapat berisi satu atau lebih alamat email yang akan menerima email yang sama.
   + **ReplacementTemplateData**— String JSON 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 string JSON 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**  
Kami merekomendasikan bahwa Anda menggunakan satu set konfigurasi yang dikonfigurasi untuk mempublikasikan Rendering kegagalan peristiwa untuk Amazon SNS. Untuk informasi selengkapnya, lihat [(Opsional) Bagian 1: Mengatur pemberitahuan acara Kegagalan Rendering](#send-personalized-email-set-up-notifications).

------
#### [ 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**— Sebuah objek JSON yang berisi `TemplateContent` dan `TemplateData` objek. 
   + **TemplateContent**— Sebuah wadah untuk atribut berikut:
     + **Subjek** - 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.
     + **Html—Tubuh** HTML dari email. Properti ini mungkin berisi tanda pengganti. Contoh sebelumnya mencakup dua tanda: `{{name}}` dan `{{favoriteanimal}}`.
     + **Teks** — Tubuh teks email. Penerima yang klien emailnya tidak menampilkan konten HTML akan melihat versi email ini. Properti ini juga dapat berisi tag pengganti.
   + **TemplateData**— Berisi pasangan kunci-nilai yang akan digunakan jika `ReplacementEmailContent` objek berisi objek JSON kosong,`{}`, di properti. `ReplacementTemplateData`
   + **BulkEmailEntries**— Array yang berisi satu atau lebih `Destination` objek.
   + **Tujuan** - Objek yang berisi penerima email yang ditentukan dalam *ToAddresses*, *CcAddresses*, dan *BccAddresses*properti. Ini dapat digunakan dalam kombinasi apa pun dan dapat berisi satu atau lebih alamat email yang akan menerima email yang sama.
   + **ReplacementTemplateData**— String JSON 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 string JSON 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**  
Kami merekomendasikan bahwa Anda menggunakan satu set konfigurasi yang dikonfigurasi untuk mempublikasikan Rendering kegagalan peristiwa untuk Amazon SNS. Untuk informasi selengkapnya, lihat [(Opsional) Bagian 1: Mengatur pemberitahuan acara Kegagalan Rendering](#send-personalized-email-set-up-notifications).

------

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

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

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

# Personalisasi email lanjutan
<a name="send-personalized-email-advanced"></a>

 Jika Anda menggunakan *template tersimpan*, yaitu, Anda telah membuat [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Template.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_Template.html)sumber daya di Amazon SES dengan menggunakan `CreateEmailTemplate` operasi dengan SES v2 API, Anda dapat memanfaatkan sistem Handlebars untuk membuat templat yang menyertakan fitur lanjutan, seperti atribut bersarang, iterasi array, pernyataan kondisional dasar, dan pembuatan paral sebaris. Bagian ini menyediakan contoh fitur ini.

Handlebar mencakup fitur tambahan di luar yang didokumentasikan di bagian ini. Untuk informasi lebih lanjut, lihat [Bantuan Bawaan](https://handlebarsjs.com/guide/builtin-helpers.html) di [handlebarsjs.com](http://handlebarsjs.com).

**catatan**  
SES tidak luput dari konten HTML saat merender template HTML untuk pesan. Ini berarti jika Anda menyertakan data yang dimasukkan pengguna, seperti dari formulir kontak, Anda harus menghindarinya di sisi klien.

**Topics**
+ [

## Menguraikan atribut yang di-nest
](#send-personalized-email-advanced-nested)
+ [

## Pengulangan melalui daftar
](#send-personalized-email-advanced-iterating)
+ [

## Menggunakan pernyataan persyaratan dasar
](#send-personalized-email-advanced-conditionals)
+ [

## Membuat parsial inline
](#send-personalized-email-advanced-inline-partials)

## Menguraikan atribut yang di-nest
<a name="send-personalized-email-advanced-nested"></a>

Handlebar mencakup dukungan untuk jalur yang di-nest sehingga mempermudah pengaturan data pelanggan yang rumit, dan kemudian data tersebut dapat dirujuk di templat email Anda.

Misalnya, Anda dapat mengatur data penerima ke dalam beberapa kategori umum. Dalam setiap kategori tersebut, Anda dapat menyertakan informasi detail. Contoh kode berikut menunjukkan contoh struktur untuk satu penerima:

```
{
  "meta":{
    "userId":"51806220607"
  },
  "contact":{
    "firstName":"Anaya",
    "lastName":"Iyengar",
    "city":"Bengaluru",
    "country":"India",
    "postalCode":"560052"
  },
  "subscription":[
    {
      "interest":"Sports"
    },
    {
      "interest":"Travel"
    },
    {
      "interest":"Cooking"
    }
  ]
}
```

Di templat email, Anda dapat merujuk ke atribut yang di-nest dengan memberikan nama atribut induk, diikuti oleh titik (.), diikuti dengan nama atribut yang Anda ingin sertakan nilainya. Misalnya, jika Anda menggunakan struktur data yang ditampilkan di contoh sebelumnya, dan Anda ingin menyertakan nama depan setiap penerima di templat email, masukkan teks berikut di templat email Anda: `Hello {{contact.firstName}}!`

Handlebar dapat mengurai jalur yang di-nest beberapa tingkat, yang berarti Anda memiliki fleksibilitas dalam penyusunan data templat.

## Pengulangan melalui daftar
<a name="send-personalized-email-advanced-iterating"></a>

Fungsi bantuan `each` mengulang melalui item di array. Kode berikut adalah contoh templat email yang menggunakan fungsi bantuan `each` untuk membuat daftar terperinci dari setiap kepentingan penerima.

```
{
  "Template": {
    "TemplateName": "Preferences",
    "SubjectPart": "Subscription Preferences for {{contact.firstName}} {{contact.lastName}}",
    "HtmlPart": "<h1>Your Preferences</h1>
                 <p>You have indicated that you are interested in receiving 
                   information about the following subjects:</p>
                 <ul>
                   {{#each subscription}}
                     <li>{{interest}}</li>
                   {{/each}}
                 </ul>
                 <p>You can change these settings at any time by visiting 
                    the <a href=https://www.example.com/prefererences/i.aspx?id={{meta.userId}}>
                    Preference Center</a>.</p>",
    "TextPart": "Your Preferences\n\nYou have indicated that you are interested in 
                 receiving information about the following subjects:\n
                 {{#each subscription}}
                   - {{interest}}\n
                 {{/each}}
                 \nYou can change these settings at any time by 
                 visiting the Preference Center at 
                 https://www.example.com/prefererences/i.aspx?id={{meta.userId}}"
  }
}
```

**penting**  
Di contoh kode sebelumnya, nilai-nilai atribut `HtmlPart` dan `TextPart` memiliki jeda baris agar contoh lebih mudah dibaca. File JSON untuk templat Anda tidak dapat berisi jeda baris dalam nilai-nilai ini. Jika Anda menyalin dan menempel contoh ini ke file JSON Anda sendiri, hapus jeda baris dan spasi ekstra dari bagian `HtmlPart` dan `TextPart` sebelum melanjutkan.

Setelah Anda membuat templat, Anda dapat menggunakan operasi `SendEmail` atau `SendBulkEmail` untuk mengirim email ke penerima menggunakan templat ini. Selama setiap penerima memiliki setidaknya satu nilai di objek `Interests`, penerima menerima email yang berisi daftar kepentingan terperinci mereka. Contoh berikut menunjukkan file JSON yang dapat digunakan untuk mengirim email ke beberapa penerima menggunakan templat sebelumnya:

```
{
  "Source":"Sender Name <sender@example.com>",
  "Template":"Preferences",
  "Destinations":[
    {
      "Destination":{
        "ToAddresses":[
          "anaya.iyengar@example.com"
        ]
      },
      "ReplacementTemplateData":"{\"meta\":{\"userId\":\"51806220607\"},\"contact\":{\"firstName\":\"Anaya\",\"lastName\":\"Iyengar\"},\"subscription\":[{\"interest\":\"Sports\"},{\"interest\":\"Travel\"},{\"interest\":\"Cooking\"}]}"
      },
    {
      "Destination":{ 
        "ToAddresses":[
          "shirley.rodriguez@example.com"
        ]
      },
      "ReplacementTemplateData":"{\"meta\":{\"userId\":\"1981624758263\"},\"contact\":{\"firstName\":\"Shirley\",\"lastName\":\"Rodriguez\"},\"subscription\":[{\"interest\":\"Technology\"},{\"interest\":\"Politics\"}]}"
    }
  ],
  "DefaultTemplateData":"{\"meta\":{\"userId\":\"\"},\"contact\":{\"firstName\":\"Friend\",\"lastName\":\"\"},\"subscription\":[]}"
}
```

Ketika Anda mengirim email ke penerima yang tercantum di contoh sebelumnya menggunakan operasi `SendBulkEmail`, mereka menerima pesan yang menyerupai contoh yang ditunjukkan pada citra berikut:

![\[Preferences notification listing Sports, Travel, and Cooking as selected interests.\]](http://docs.aws.amazon.com/id_id/ses/latest/dg/images/send-personalized-email-advanced-condition-interest.png)


## Menggunakan pernyataan persyaratan dasar
<a name="send-personalized-email-advanced-conditionals"></a>

Bagian ini dibangun di atas contoh yang dijelaskan di bagian sebelumnya. Contoh di bagian sebelumnya menggunakan bantuan `each` untuk mengulangi melalui daftar kepentingan. Namun, penerima yang kepentingannya tidak ditentukan menerima email yang berisi daftar kosong. Dengan menggunakan bantuan `{{if}}`, email dapat diberi format yang berbeda jika atribut tertentu hadir di data templat. Kode berikut menggunakan bantuan `{{if}}` untuk menampilkan daftar poin dari bagian sebelumnya jika array `Subscription` berisi nilai. Jika array kosong, blok teks yang berbeda ditampilkan.

```
{
  "Template": {
    "TemplateName": "Preferences2",
    "SubjectPart": "Subscription Preferences for {{contact.firstName}} {{contact.lastName}}",
    "HtmlPart": "<h1>Your Preferences</h1>
                 <p>Dear {{contact.firstName}},</p>
                 {{#if subscription}}
                   <p>You have indicated that you are interested in receiving 
                     information about the following subjects:</p>
                     <ul>
                     {{#each subscription}}
                       <li>{{interest}}</li>
                     {{/each}}
                     </ul>
                     <p>You can change these settings at any time by visiting 
                       the <a href=https://www.example.com/prefererences/i.aspx?id={{meta.userId}}>
                       Preference Center</a>.</p>
                 {{else}}
                   <p>Please update your subscription preferences by visiting 
                     the <a href=https://www.example.com/prefererences/i.aspx?id={{meta.userId}}>
                     Preference Center</a>.
                 {{/if}}",
    "TextPart": "Your Preferences\n\nDear {{contact.firstName}},\n\n
                 {{#if subscription}}
                   You have indicated that you are interested in receiving 
                   information about the following subjects:\n
                   {{#each subscription}}
                     - {{interest}}\n
                   {{/each}}
                   \nYou can change these settings at any time by visiting the 
                   Preference Center at https://www.example.com/prefererences/i.aspx?id={{meta.userId}}.
                 {{else}}
                   Please update your subscription preferences by visiting the 
                   Preference Center at https://www.example.com/prefererences/i.aspx?id={{meta.userId}}.
                 {{/if}}"
  }
}
```

**penting**  
Di contoh kode sebelumnya, nilai-nilai atribut `HtmlPart` dan `TextPart` memiliki jeda baris agar contoh lebih mudah dibaca. File JSON untuk templat Anda tidak dapat berisi jeda baris dalam nilai-nilai ini. Jika Anda menyalin dan menempel contoh ini ke file JSON Anda sendiri, hapus jeda baris dan spasi ekstra dari bagian `HtmlPart` dan `TextPart` sebelum melanjutkan.

Contoh berikut menunjukkan file JSON yang dapat digunakan untuk mengirim email ke beberapa penerima menggunakan templat sebelumnya:

```
{
  "Source":"Sender Name <sender@example.com>",
  "Template":"Preferences2",
  "Destinations":[
    {
      "Destination":{
        "ToAddresses":[
          "anaya.iyengar@example.com"
        ]
      },
      "ReplacementTemplateData":"{\"meta\":{\"userId\":\"51806220607\"},\"contact\":{\"firstName\":\"Anaya\",\"lastName\":\"Iyengar\"},\"subscription\":[{\"interest\":\"Sports\"},{\"interest\":\"Cooking\"}]}"
      },
    {
      "Destination":{ 
        "ToAddresses":[
          "shirley.rodriguez@example.com"
        ]
      },
      "ReplacementTemplateData":"{\"meta\":{\"userId\":\"1981624758263\"},\"contact\":{\"firstName\":\"Shirley\",\"lastName\":\"Rodriguez\"}}"
    }
  ],
  "DefaultTemplateData":"{\"meta\":{\"userId\":\"\"},\"contact\":{\"firstName\":\"Friend\",\"lastName\":\"\"},\"subscription\":[]}"
}
```

Di contoh ini, penerima yang data templatnya memiliki daftar kepentingan menerima email yang sama seperti contoh yang ditunjukkan di bagian sebelumnya. Penerima yang data templatnya tidak memiliki kepentingan apa pun, namun, menerima email yang menyerupai contoh yang ditunjukkan pada citra berikut:

![\[Email message with header "Your Preferences" and text about updating subscription preferences.\]](http://docs.aws.amazon.com/id_id/ses/latest/dg/images/send-personalized-email-advanced-condition-nointerest.png)


## Membuat parsial inline
<a name="send-personalized-email-advanced-inline-partials"></a>

Anda dapat menggunakan parsial inline untuk menyederhanakan templat yang mencakup string berulang. Sebagai contoh, Anda dapat membuat parsial inline yang mencakup nama depan penerima, dan, jika tersedia, nama belakang mereka dengan menambahkan kode berikut ke depan templat Anda:

```
{{#* inline \"fullName\"}}{{firstName}}{{#if lastName}} {{lastName}}{{/if}}{{/inline}}\n
```

**catatan**  
Karakter baris baru (`\n`) diperlukan untuk memisahkan blok `{{inline}}` dari konten di templat Anda. Baris baru tidak diberikan di output akhir.

Setelah Anda membuat parsial `fullName`, Anda dapat memasukkannya di mana saja di templat Anda dengan meletakkan tanda lebih besar-daripada (>) sebelum nama parsial lalu diikuti oleh spasi, seperti di contoh berikut: `{{> fullName}}`. Parsial inline tidak ditransfer antar bagian dari email. Misalnya, jika Anda ingin menggunakan parsial inline yang dama di kedua versi email HTML dan teks, Anda harus menentukannya di kedua bagian `HtmlPart` dan `TextPart`.

Anda juga dapat menggunakan parsial inline ketika mengulang melalui array. Anda dapat menggunakan kode berikut untuk membuat templat yang menggunakan parsial inline `fullName`. Di contoh ini, parsial inline berlaku untuk kedua nama penerima dan array nama lain:

```
{
  "Template": {
    "TemplateName": "Preferences3",
    "SubjectPart": "{{firstName}}'s Subscription Preferences",
    "HtmlPart": "{{#* inline \"fullName\"}}
                   {{firstName}}{{#if lastName}} {{lastName}}{{/if}}
                 {{/inline~}}\n
                 <h1>Hello {{> fullName}}!</h1>
                 <p>You have listed the following people as your friends:</p>
                 <ul>
                 {{#each friends}}
                   <li>{{> fullName}}</li>
                 {{/each}}</ul>",
    "TextPart": "{{#* inline \"fullName\"}}
                   {{firstName}}{{#if lastName}} {{lastName}}{{/if}}
                 {{/inline~}}\n
                 Hello {{> fullName}}! You have listed the following people 
                 as your friends:\n
                 {{#each friends}}
                   - {{> fullName}}\n
                 {{/each}}"
  }
}
```

**penting**  
Di contoh kode sebelumnya, nilai-nilai atribut `HtmlPart` dan `TextPart` memiliki jeda baris agar contoh lebih mudah dibaca. File JSON untuk templat Anda tidak dapat berisi jeda baris dalam nilai-nilai ini. Jika Anda menyalin dan menempel contoh ini ke file JSON Anda sendiri, hapus jeda baris dan spasi ekstra dari bagian ini.

# Mengelola templat email
<a name="send-personalized-email-manage-templates"></a>

Selain [membuat template email](send-personalized-email-api.md), Anda juga dapat menggunakan Amazon SES v2 API untuk memperbarui atau menghapus template yang ada, untuk daftar semua template yang ada, atau untuk melihat konten template. 

Bagian ini berisi prosedur untuk menggunakan AWS CLI untuk melakukan tugas-tugas yang terkait dengan template SES.

**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](https://docs.aws.amazon.com/cli/latest/userguide/).

## Melihat daftar templat email
<a name="send-personalized-email-manage-templates-list"></a>

Anda dapat menggunakan operasi [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_ListEmailTemplate.html)SES v2 API untuk melihat daftar semua template email yang ada.

**Untuk melihat daftar templat email**
+ Di baris perintah, masukkan perintah berikut:

  ```
  aws sesv2 list-email-templates
  ```

  Jika ada template email yang ada di akun SES Anda di Wilayah saat ini, perintah ini mengembalikan respons yang menyerupai contoh berikut:

  ```
  {
      "TemplatesMetadata": [
          {
              "Name": "SpecialOffers",
              "CreatedTimestamp": "2020-08-05T16:04:12.640Z"
          },
          {
              "Name": "NewsAndUpdates",
              "CreatedTimestamp": "2019-10-03T20:03:34.574Z"
          }
      ]
  }
  ```

  Jika Anda belum membuat templat apa pun, perintah tersebut mengembalikan objek `TemplatesMetadata` dengan tanpa anggota.

## Melihat konten templat email tertentu
<a name="send-personalized-email-manage-templates-get"></a>

Anda dapat menggunakan operasi [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_GetEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_GetEmailTemplate.html)SES v2 API untuk melihat konten template email tertentu.

**Untuk melihat konten templat email**
+ Di baris perintah, masukkan perintah berikut:

  ```
  aws sesv2 get-email-template --template-name MyTemplate
  ```

  Pada perintah sebelumnya, ganti *MyTemplate* dengan nama template yang ingin Anda lihat.

  Jika nama template yang Anda berikan cocok dengan template yang ada di akun SES Anda, perintah ini mengembalikan respons yang menyerupai contoh berikut:

  ```
  {
      "Template": {
          "TemplateName": "TestMessage",
          "SubjectPart": "Amazon SES Test Message",
          "TextPart": "Hello! This is the text part of the message.",
          "HtmlPart": "<html>\n<body>\n<h2>Hello!</h2>\n<p>This is the HTML part of the message.</p></body>\n</html>"
      }
  }
  ```

  Jika nama template yang Anda berikan tidak cocok dengan template yang ada di akun SES Anda, perintah akan mengembalikan `NotFoundException` kesalahan.

## Menghapus templat email
<a name="send-personalized-email-manage-templates-delete"></a>

Anda dapat menggunakan operasi [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_DeleteEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_DeleteEmailTemplate.html)SES v2 API untuk menghapus template email tertentu.

**Untuk menghapus templat email**
+ Di baris perintah, masukkan perintah berikut:

  ```
  aws sesv2 delete-email-template --template-name MyTemplate
  ```

  Pada perintah sebelumnya, ganti *MyTemplate* dengan nama template yang ingin Anda hapus.

  Perintah ini tidak memberikan output apa pun. Anda dapat memverifikasi bahwa template telah dihapus dengan menggunakan [GetTemplate](#send-personalized-email-manage-templates-get)operasi.

## Memperbarui templat email
<a name="send-personalized-email-manage-templates-update"></a>

Anda dapat menggunakan operasi [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_UpdateEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_UpdateEmailTemplate.html)SES v2 API untuk memperbarui template email yang ada. Misalnya, operasi ini sangat membantu jika Anda ingin mengubah baris subjek templat email, atau jika Anda perlu mengubah badan pesan itu sendiri.

**Untuk memperbarui templat email**

1. Gunakan perintah `GetEmailTemplate` untuk mengambil templat yang ada dengan memasukkan perintah berikut di baris perintah:

   ```
   aws sesv2 get-email-template --template-name MyTemplate
   ```

   Pada perintah sebelumnya, ganti *MyTemplate* dengan nama template yang ingin Anda perbarui.

   Jika nama template yang Anda berikan cocok dengan template yang ada di akun SES Anda, perintah ini mengembalikan respons yang menyerupai contoh berikut:

   ```
   {
       "Template": {
           "TemplateName": "TestMessage",
           "SubjectPart": "Amazon SES Test Message",
           "TextPart": "Hello! This is the text part of the message.",
           "HtmlPart": "<html>\n<body>\n<h2>Hello!</h2>\n<p>This is the HTML part of the message.</p></body>\n</html>"
       }
   }
   ```

1. Di editor teks, buat file baru. Tempel output dari perintah sebelumnya ke dalam file.

1. Ubah templat sesuai kebutuhan. Setiap baris yang Anda hilangkan akan dihapus dari templat. Misalnya, jika Anda hanya ingin mengubah `SubjectPart` dari templat, Anda masih perlu menyertakan properti `TextPart` dan `HtmlPart`.

   Setelah selesai, simpan file sebagai `update_template.json`.

1. Di baris perintah, masukkan perintah berikut:

   ```
   aws sesv2 update-email-template --cli-input-json file://path/to/update_template.json
   ```

   Pada perintah sebelumnya, ganti *path/to/update\$1template.json* dengan path ke `update_template.json` file yang Anda buat pada langkah sebelumnya.

   Jika templat berhasil diperbarui, perintah ini tidak menyediakan output apa pun. Anda dapat memverifikasi bahwa template telah diperbarui dengan menggunakan [https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_GetEmailTemplate.html](https://docs.aws.amazon.com/ses/latest/APIReference-V2/API_GetEmailTemplate.html)operasi.

   Jika templat yang Anda tentukan tidak ada, perintah ini mengembalikan kesalahan `TemplateDoesNotExist`. Jika templat tidak berisi properti `TextPart` atau `HtmlPart` (atau keduanya), perintah ini mengembalikan kesalahan `InvalidParameterValue`. 