

 [Panduan Referensi API AWS SDK untuk JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) menjelaskan secara rinci semua operasi API untuk AWS SDK untuk JavaScript versi 3 (V3). 

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

# Contoh Layanan Email Sederhana Amazon
<a name="ses-examples"></a>

Amazon Simple Email Service (Amazon SES) adalah layanan pengiriman email berbasis cloud yang dirancang untuk membantu pemasar digital dan pengembang aplikasi mengirim email pemasaran, pemberitahuan, dan transaksional. Ini adalah layanan yang andal dan hemat biaya untuk bisnis dari semua ukuran yang menggunakan email untuk tetap berhubungan dengan pelanggan mereka.

![\[Hubungan antara JavaScript lingkungan, SDK, dan Amazon SES\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/code-samples-ses.png)


 JavaScript API untuk Amazon SES diekspos melalui kelas `SES` klien. Untuk informasi selengkapnya tentang menggunakan kelas klien Amazon SES, lihat [Kelas: SES](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SES/) di Referensi API.

**Topics**
+ [Mengelola identitas Amazon SES](ses-examples-managing-identities.md)
+ [Bekerja dengan template email di Amazon SES](ses-examples-creating-template.md)
+ [Mengirim email menggunakan Amazon SES](ses-examples-sending-email.md)

# Mengelola identitas Amazon SES
<a name="ses-examples-managing-identities"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/nodeicon.png)

**Contoh kode Node.js ini menunjukkan:**
+ Cara memverifikasi alamat email dan domain yang digunakan dengan Amazon SES.
+ Cara menetapkan kebijakan AWS Identity and Access Management (IAM) ke identitas Amazon SES Anda.
+ Cara membuat daftar semua identitas Amazon SES untuk AWS akun Anda.
+ Cara menghapus identitas yang digunakan dengan Amazon SES.

*Identitas* Amazon SES adalah alamat email atau domain yang digunakan Amazon SES untuk mengirim email. Amazon SES mengharuskan Anda untuk memverifikasi identitas email Anda, mengonfirmasi bahwa Anda memilikinya dan mencegah orang lain menggunakannya.

Untuk detail tentang cara memverifikasi alamat email dan domain di Amazon SES, lihat [Memverifikasi alamat email dan domain di Amazon SES di Panduan](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html) Pengembang Layanan Email Sederhana Amazon. Untuk informasi tentang mengirim otorisasi di Amazon SES, lihat [Ikhtisar otorisasi pengiriman Amazon SES](Amazon Simple Email Service Developer Guidesending-authorization-overview.html).

## Skenario
<a name="ses-examples-verifying-identities-scenario"></a>

Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk memverifikasi dan mengelola identitas Amazon SES. Modul Node.js menggunakan SDK JavaScript untuk memverifikasi alamat email dan domain, menggunakan metode kelas `SES` klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListIdentitiesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListIdentitiesCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteIdentityCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteIdentityCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyEmailIdentityCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyEmailIdentityCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyDomainIdentityCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/VerifyDomainIdentityCommand/)

## Tugas prasyarat
<a name="ses-examples-verifying-identities-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/ses/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Daftar identitas Anda
<a name="ses-examples-listing-identities"></a>

Dalam contoh ini, gunakan modul Node.js untuk mencantumkan alamat email dan domain yang akan digunakan dengan Amazon SES.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_listidentities.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati `IdentityType` dan parameter lainnya untuk `ListIdentitiesCommand` metode kelas `SES` klien. Untuk memanggil `ListIdentitiesCommand` metode, panggil objek layanan Amazon SES, melewati objek parameter. 

 Yang `data` dikembalikan berisi array identitas domain seperti yang ditentukan oleh `IdentityType` parameter.

**catatan**  
Ganti *IdentityType* dengan tipe identitas, yang bisa jadi "EmailAddress" atau “Domain”.

```
import { ListIdentitiesCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";

const createListIdentitiesCommand = () =>
  new ListIdentitiesCommand({ IdentityType: "EmailAddress", MaxItems: 10 });

const run = async () => {
  const listIdentitiesCommand = createListIdentitiesCommand();

  try {
    return await sesClient.send(listIdentitiesCommand);
  } catch (err) {
    console.log("Failed to list identities.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node ses_listidentities.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_listidentities.js).

## Memverifikasi identitas alamat email
<a name="ses-examples-verifying-email"></a>

Dalam contoh ini, gunakan modul Node.js untuk memverifikasi pengirim email yang akan digunakan dengan Amazon SES.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_verifyemailidentity.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk mengunduh klien dan paket yang diperlukan. 

Buat objek untuk melewati `EmailAddress` parameter untuk `VerifyEmailIdentityCommand` metode kelas `SES` klien. Untuk memanggil `VerifyEmailIdentityCommand` metode, panggil objek layanan klien Amazon SES, meneruskan parameter. 

**catatan**  
Ganti *EMAIL\$1ADDRESS* dengan alamat email, seperti name@example.com.

```
// Import required AWS SDK clients and commands for Node.js
import { VerifyEmailIdentityCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";

const EMAIL_ADDRESS = "name@example.com";

const createVerifyEmailIdentityCommand = (emailAddress) => {
  return new VerifyEmailIdentityCommand({ EmailAddress: emailAddress });
};

const run = async () => {
  const verifyEmailIdentityCommand =
    createVerifyEmailIdentityCommand(EMAIL_ADDRESS);
  try {
    return await sesClient.send(verifyEmailIdentityCommand);
  } catch (err) {
    console.log("Failed to verify email identity.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Domain ditambahkan ke Amazon SES untuk diverifikasi.

```
node ses_verifyemailidentity.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_verifyemailidentity.js).

## Memverifikasi identitas Domain
<a name="ses-examples-verifying-domains"></a>

Dalam contoh ini, gunakan modul Node.js untuk memverifikasi domain email yang akan digunakan dengan Amazon SES.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_verifydomainidentity.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati `Domain` parameter untuk `VerifyDomainIdentityCommand` metode kelas `SES` klien. Untuk memanggil `VerifyDomainIdentityCommand` metode, panggil objek layanan klien Amazon SES, meneruskan objek parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *DOMAIN\$1NAME* dengan nama domain.

```
import { VerifyDomainIdentityCommand } from "@aws-sdk/client-ses";
import {
  getUniqueName,
  postfix,
} from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

/**
 * You must have access to the domain's DNS settings to complete the
 * domain verification process.
 */
const DOMAIN_NAME = postfix(getUniqueName("Domain"), ".example.com");

const createVerifyDomainIdentityCommand = () => {
  return new VerifyDomainIdentityCommand({ Domain: DOMAIN_NAME });
};

const run = async () => {
  const VerifyDomainIdentityCommand = createVerifyDomainIdentityCommand();

  try {
    return await sesClient.send(VerifyDomainIdentityCommand);
  } catch (err) {
    console.log("Failed to verify domain.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Domain ditambahkan ke Amazon SES untuk diverifikasi.

```
node ses_verifydomainidentity.js  
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_verifydomainidentity.js).

## Menghapus identitas
<a name="ses-examples-deleting-identities"></a>

Dalam contoh ini, gunakan modul Node.js untuk menghapus alamat email atau domain yang digunakan dengan Amazon SES.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_deleteidentity.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati `Identity` parameter untuk `DeleteIdentityCommand` metode kelas `SES` klien. Untuk memanggil `DeleteIdentityCommand` metode, buat `request` untuk memanggil objek layanan klien Amazon SES, melewati parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *IDENTITY\$1EMAIL* dengan email identitas yang akan dihapus.

```
import { DeleteIdentityCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";

const IDENTITY_EMAIL = "fake@example.com";

const createDeleteIdentityCommand = (identityName) => {
  return new DeleteIdentityCommand({
    Identity: identityName,
  });
};

const run = async () => {
  const deleteIdentityCommand = createDeleteIdentityCommand(IDENTITY_EMAIL);

  try {
    return await sesClient.send(deleteIdentityCommand);
  } catch (err) {
    console.log("Failed to delete identity.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.

```
node ses_deleteidentity.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_deleteidentity.js).

# Bekerja dengan template email di Amazon SES
<a name="ses-examples-creating-template"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/nodeicon.png)

**Contoh kode Node.js ini menunjukkan:**
+ Cara mendapatkan daftar semua template email Anda.
+ Cara mengambil dan memperbarui template email.
+ Cara membuat dan menghapus template email.

Amazon SES memungkinkan Anda mengirim pesan email yang dipersonalisasi menggunakan templat email. Untuk detail tentang cara membuat dan menggunakan templat email di Amazon SES, lihat [Mengirim email yang dipersonalisasi menggunakan Amazon SES API](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html) di Panduan Pengembang Layanan Email Sederhana Amazon.

## Skenario
<a name="ses-examples-creating-template-scenario"></a>

Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk bekerja dengan template email. Modul Node.js menggunakan SDK JavaScript untuk membuat dan menggunakan templat email menggunakan metode kelas `SES` klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListTemplatesCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/ListTemplatesCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/CreateTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/CreateTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/GetTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/GetTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/DeleteTemplateCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/UpdateTemplateCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/UpdateTemplateCommand/)

## Tugas prasyarat
<a name="ses-examples-creating-template-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/ses/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Daftar template email Anda
<a name="ses-examples-listing-templates"></a>

Dalam contoh ini, gunakan modul Node.js untuk membuat template email untuk digunakan dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_listtemplates.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati parameter untuk `ListTemplatesCommand` metode kelas `SES` klien. Untuk memanggil `ListTemplatesCommand` metode, panggil objek layanan klien Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

```
import { ListTemplatesCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";

const createListTemplatesCommand = (maxItems) =>
  new ListTemplatesCommand({ MaxItems: maxItems });

const run = async () => {
  const listTemplatesCommand = createListTemplatesCommand(10);

  try {
    return await sesClient.send(listTemplatesCommand);
  } catch (err) {
    console.log("Failed to list templates.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Amazon SES mengembalikan daftar templat.

```
node ses_listtemplates.js  
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_listtemplates.js).

## Mendapatkan template email
<a name="ses-examples-get-template"></a>

Dalam contoh ini, gunakan modul Node.js untuk mendapatkan template email untuk digunakan dengan Amazon SES.

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_gettemplate.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati `TemplateName` parameter untuk `GetTemplateCommand` metode kelas `SES` klien. Untuk memanggil `GetTemplateCommand` metode, panggil objek layanan klien Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *TEMPLATE\$1NAME* dengan nama template untuk kembali.

```
import { GetTemplateCommand } from "@aws-sdk/client-ses";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

const TEMPLATE_NAME = getUniqueName("TemplateName");

const createGetTemplateCommand = (templateName) =>
  new GetTemplateCommand({ TemplateName: templateName });

const run = async () => {
  const getTemplateCommand = createGetTemplateCommand(TEMPLATE_NAME);

  try {
    return await sesClient.send(getTemplateCommand);
  } catch (caught) {
    if (caught instanceof Error && caught.name === "MessageRejected") {
      /** @type { import('@aws-sdk/client-ses').MessageRejected} */
      const messageRejectedError = caught;
      return messageRejectedError;
    }
    throw caught;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Amazon SES mengembalikan detail template.

```
node ses_gettemplate.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_gettemplate.js).

## Membuat template email
<a name="ses-examples-create-template"></a>

Dalam contoh ini, gunakan modul Node.js untuk membuat template email untuk digunakan dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_createtemplate.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk melewati parameter untuk `CreateTemplateCommand` metode kelas `SES` klien, termasuk,`TemplateName`, `HtmlPart``SubjectPart`, dan`TextPart`. Untuk memanggil `CreateTemplateCommand` metode, panggil objek layanan klien Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *TEMPLATE\$1NAME* dengan nama untuk template baru, *HtmlPart* dengan HTML tag konten email, dan *SubjectPart* dengan subjek email.

```
import { CreateTemplateCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";

const TEMPLATE_NAME = getUniqueName("TestTemplateName");

const createCreateTemplateCommand = () => {
  return new CreateTemplateCommand({
    /**
     * The template feature in Amazon SES is based on the Handlebars template system.
     */
    Template: {
      /**
       * The name of an existing template in Amazon SES.
       */
      TemplateName: TEMPLATE_NAME,
      HtmlPart: `
        <h1>Hello, {{contact.firstName}}!</h1>
        <p>
        Did you know Amazon has a mascot named Peccy?
        </p>
      `,
      SubjectPart: "Amazon Tip",
    },
  });
};

const run = async () => {
  const createTemplateCommand = createCreateTemplateCommand();

  try {
    return await sesClient.send(createTemplateCommand);
  } catch (err) {
    console.log("Failed to create template.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Template ditambahkan ke Amazon SES.

```
node ses_createtemplate.js  
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_createtemplate.js).

## Memperbarui templat email
<a name="ses-examples-update-template"></a>

Dalam contoh ini, gunakan modul Node.js untuk membuat template email untuk digunakan dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_updatetemplate.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk meneruskan nilai `Template` parameter yang ingin Anda perbarui di template, dengan `TemplateName` parameter yang diperlukan diteruskan ke `UpdateTemplateCommand` metode kelas `SES` klien. Untuk memanggil `UpdateTemplateCommand` metode, panggil objek layanan Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *TEMPLATE\$1NAME* dengan nama template dan *HTML\$1PART* dengan konten email yang diberi tag HTML.

```
import { UpdateTemplateCommand } from "@aws-sdk/client-ses";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

const TEMPLATE_NAME = getUniqueName("TemplateName");
const HTML_PART = "<h1>Hello, World!</h1>";

const createUpdateTemplateCommand = () => {
  return new UpdateTemplateCommand({
    Template: {
      TemplateName: TEMPLATE_NAME,
      HtmlPart: HTML_PART,
      SubjectPart: "Example",
      TextPart: "Updated template text.",
    },
  });
};

const run = async () => {
  const updateTemplateCommand = createUpdateTemplateCommand();

  try {
    return await sesClient.send(updateTemplateCommand);
  } catch (err) {
    console.log("Failed to update template.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Amazon SES mengembalikan detail template.

```
node ses_updatetemplate.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_updatetemplate.js).

## Menghapus templat email
<a name="ses-examples-delete-template"></a>

Dalam contoh ini, gunakan modul Node.js untuk membuat template email untuk digunakan dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_deletetemplate.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk meneruskan `TemplateName` parameter yang diperlukan ke `DeleteTemplateCommand` metode kelas `SES` klien. Untuk memanggil `DeleteTemplateCommand` metode, panggil objek layanan Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *TEMPLATE\$1NAME* dengan nama template yang akan dihapus.

```
import { DeleteTemplateCommand } from "@aws-sdk/client-ses";
import { getUniqueName } from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

const TEMPLATE_NAME = getUniqueName("TemplateName");

const createDeleteTemplateCommand = (templateName) =>
  new DeleteTemplateCommand({ TemplateName: templateName });

const run = async () => {
  const deleteTemplateCommand = createDeleteTemplateCommand(TEMPLATE_NAME);

  try {
    return await sesClient.send(deleteTemplateCommand);
  } catch (err) {
    console.log("Failed to delete template.", err);
    return err;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Amazon SES mengembalikan detail template.

```
node ses_deletetemplate.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_deletetemplate.js).

# Mengirim email menggunakan Amazon SES
<a name="ses-examples-sending-email"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/id_id/sdk-for-javascript/v3/developer-guide/images/nodeicon.png)

**Contoh kode Node.js ini menunjukkan:**
+ Kirim teks atau email HTML.
+ Kirim email berdasarkan template email.
+ Kirim email massal berdasarkan template email.

Amazon SES API menyediakan dua cara berbeda bagi Anda untuk mengirim email, tergantung pada seberapa banyak kontrol yang Anda inginkan atas komposisi pesan email: diformat dan mentah. Untuk detailnya, lihat [Mengirim email berformat menggunakan Amazon SES API](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-formatted.html) dan [Mengirim email mentah menggunakan Amazon SES API](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html).

## Skenario
<a name="ses-examples-sending-email-scenario"></a>

Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk mengirim email dengan berbagai cara. Modul Node.js menggunakan SDK JavaScript untuk membuat dan menggunakan templat email menggunakan metode kelas `SES` klien berikut:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendEmailCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendEmailCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendTemplatedEmailCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendTemplatedEmailCommand/)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendBulkTemplatedEmailCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ses/Class/SendBulkTemplatedEmailCommand/)

## Tugas prasyarat
<a name="ses-examples-sending-emails-prerequisites"></a>

Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
+ Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK untuk JavaScript dan pihak ketiga. Ikuti instruksi pada [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/ses/README.md).
+ Buat file konfigurasi bersama dengan kredensi pengguna Anda. *Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File [konfigurasi dan kredensial bersama di Panduan Referensi Alat](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) dan Alat.AWS SDKs *

**penting**  
Contoh-contoh ini menunjukkan bagaimana untuk objek layanan import/export klien dan perintah menggunakan ECMAScript6 (ES6).  
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat [unduhan Node.js.](https://nodejs.org/en/download) .
Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. [JavaScript ES6/CommonJS sintaks](sdk-example-javascript-syntax.md)

## Persyaratan pengiriman pesan email
<a name="ses-examples-sending-msail-reqs"></a>

Amazon SES membuat pesan email dan segera mengantri untuk dikirim. Untuk mengirim email menggunakan `SendEmailCommand` metode ini, pesan Anda harus memenuhi persyaratan berikut:
+ Anda harus mengirim pesan dari alamat email atau domain yang diverifikasi. Jika Anda mencoba mengirim email menggunakan alamat atau domain yang tidak diverifikasi, operasi akan menghasilkan `"Email address not verified"` kesalahan.
+ Jika akun Anda masih dalam kotak pasir Amazon SES, Anda hanya dapat mengirim ke alamat atau domain terverifikasi, atau ke alamat email yang terkait dengan Simulator Kotak Surat Amazon SES. Untuk informasi selengkapnya, lihat [Memverifikasi alamat email dan domain](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html) di Panduan Pengembang Layanan Email Sederhana Amazon.
+ Ukuran total pesan, termasuk lampiran, harus lebih kecil dari 10 MB.
+ Pesan harus menyertakan setidaknya satu alamat email penerima. Alamat penerima dapat berupa alamat Kepada:, alamat CC:, atau alamat BCC:. Jika alamat email penerima tidak valid (yaitu, tidak dalam format`UserName@[SubDomain.]Domain.TopLevelDomain`), seluruh pesan ditolak, bahkan jika pesan berisi penerima lain yang valid.
+ Pesan tidak dapat menyertakan lebih dari 50 penerima di bidang Kepada:, CC: dan BCC:. Jika Anda perlu mengirim pesan email ke audiens yang lebih besar, Anda dapat membagi daftar penerima Anda menjadi grup 50 atau kurang, dan kemudian memanggil `sendEmail` metode beberapa kali untuk mengirim pesan ke setiap grup.

## Mengirim email
<a name="ses-examples-sendmail"></a>

Dalam contoh ini, gunakan modul Node.js untuk mengirim email dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_sendemail.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk meneruskan nilai parameter yang menentukan email yang akan dikirim, termasuk alamat pengirim dan penerima, subjek, dan badan email dalam format teks biasa dan HTML, ke `SendEmailCommand` metode kelas `SES` klien. Untuk memanggil `SendEmailCommand` metode, panggil objek layanan Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *toAddress* dengan alamat untuk mengirim email ke, dan *fromAddress* dengan alamat email untuk mengirim email dari.

```
import { SendEmailCommand } from "@aws-sdk/client-ses";
import { sesClient } from "./libs/sesClient.js";

const createSendEmailCommand = (toAddress, fromAddress) => {
  return new SendEmailCommand({
    Destination: {
      /* required */
      CcAddresses: [
        /* more items */
      ],
      ToAddresses: [
        toAddress,
        /* more To-email addresses */
      ],
    },
    Message: {
      /* required */
      Body: {
        /* required */
        Html: {
          Charset: "UTF-8",
          Data: "HTML_FORMAT_BODY",
        },
        Text: {
          Charset: "UTF-8",
          Data: "TEXT_FORMAT_BODY",
        },
      },
      Subject: {
        Charset: "UTF-8",
        Data: "EMAIL_SUBJECT",
      },
    },
    Source: fromAddress,
    ReplyToAddresses: [
      /* more items */
    ],
  });
};

const run = async () => {
  const sendEmailCommand = createSendEmailCommand(
    "recipient@example.com",
    "sender@example.com",
  );

  try {
    return await sesClient.send(sendEmailCommand);
  } catch (caught) {
    if (caught instanceof Error && caught.name === "MessageRejected") {
      /** @type { import('@aws-sdk/client-ses').MessageRejected} */
      const messageRejectedError = caught;
      return messageRejectedError;
    }
    throw caught;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Email diantrian untuk dikirim oleh Amazon SES.

```
node ses_sendemail.js 
```

Kode contoh ini dapat [ditemukan di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_sendemail.js). 

## Mengirim email menggunakan template
<a name="ses-examples-sendtemplatedemail"></a>

Dalam contoh ini, gunakan modul Node.js untuk mengirim email dengan Amazon SES. Buat modul Node.js dengan nama file`ses_sendtemplatedemail.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.

Buat objek untuk meneruskan nilai parameter yang menentukan email yang akan dikirim, termasuk alamat pengirim dan penerima, subjek, badan email dalam format teks biasa dan HTML, ke `SendTemplatedEmailCommand` metode kelas `SES` klien. Untuk memanggil `SendTemplatedEmailCommand` metode, panggil objek layanan klien Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *REGION* dengan AWS Wilayah Anda, *USER* dengan nama dan alamat email untuk mengirim email ke, *VERIFIED\$1EMAIL* dengan alamat email untuk mengirim email dari, dan *TEMPLATE\$1NAME* dengan nama template.

```
import { SendTemplatedEmailCommand } from "@aws-sdk/client-ses";
import {
  getUniqueName,
  postfix,
} from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

/**
 * Replace this with the name of an existing template.
 */
const TEMPLATE_NAME = getUniqueName("ReminderTemplate");

/**
 * Replace these with existing verified emails.
 */
const VERIFIED_EMAIL = postfix(getUniqueName("Bilbo"), "@example.com");

const USER = { firstName: "Bilbo", emailAddress: VERIFIED_EMAIL };

/**
 *
 * @param { { emailAddress: string, firstName: string } } user
 * @param { string } templateName - The name of an existing template in Amazon SES.
 * @returns { SendTemplatedEmailCommand }
 */
const createReminderEmailCommand = (user, templateName) => {
  return new SendTemplatedEmailCommand({
    /**
     * Here's an example of how a template would be replaced with user data:
     * Template: <h1>Hello {{contact.firstName}},</h1><p>Don't forget about the party gifts!</p>
     * Destination: <h1>Hello Bilbo,</h1><p>Don't forget about the party gifts!</p>
     */
    Destination: { ToAddresses: [user.emailAddress] },
    TemplateData: JSON.stringify({ contact: { firstName: user.firstName } }),
    Source: VERIFIED_EMAIL,
    Template: templateName,
  });
};

const run = async () => {
  const sendReminderEmailCommand = createReminderEmailCommand(
    USER,
    TEMPLATE_NAME,
  );
  try {
    return await sesClient.send(sendReminderEmailCommand);
  } catch (caught) {
    if (caught instanceof Error && caught.name === "MessageRejected") {
      /** @type { import('@aws-sdk/client-ses').MessageRejected} */
      const messageRejectedError = caught;
      return messageRejectedError;
    }
    throw caught;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Email diantrian untuk dikirim oleh Amazon SES.

```
node ses_sendtemplatedemail.js 
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_sendtemplatedemail.js).

## Mengirim email massal menggunakan template
<a name="ses-examples-sendbulktemplatedemail"></a>

Dalam contoh ini, gunakan modul Node.js untuk mengirim email dengan Amazon SES. 

Buat `libs` direktori, dan buat modul Node.js dengan nama file`sesClient.js`. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SES. Ganti *REGION* dengan AWS wilayah Anda.

```
import { SESClient } from "@aws-sdk/client-ses";
// Set the AWS Region.
const REGION = "us-east-1";
// Credentials are automatically resolved using the AWS SDK credential provider chain.
// For more information, see https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-credentials-node.html
// Create SES service object.
const sesClient = new SESClient({ region: REGION });
export { sesClient };
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/libs/sesClient.js).

Buat modul Node.js dengan nama file`ses_sendbulktemplatedemail.js`. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan. 

Buat objek untuk meneruskan nilai parameter yang menentukan email yang akan dikirim, termasuk alamat pengirim dan penerima, subjek, dan badan email dalam format teks biasa dan HTML, ke `SendBulkTemplatedEmailCommand` metode kelas `SES` klien. Untuk memanggil `SendBulkTemplatedEmailCommand` metode, panggil objek layanan Amazon SES, meneruskan parameter. 

**catatan**  
Contoh ini mengimpor dan menggunakan klien paket AWS Service V3 yang diperlukan, perintah V3, dan menggunakan `send` metode dalam sebuah pola. async/await Anda dapat membuat contoh ini menggunakan perintah V2 sebagai gantinya dengan membuat beberapa perubahan kecil. Lihat perinciannya di [Menggunakan perintah v3](migrating.md#using_v3_commands).

**catatan**  
Ganti *USERS* dengan nama dan alamat email untuk mengirim email ke, *VERIFIED\$1EMAIL\$11* dengan alamat email untuk mengirim email dari, dan *TEMPLATE\$1NAME* dengan nama template.

```
import { SendBulkTemplatedEmailCommand } from "@aws-sdk/client-ses";
import {
  getUniqueName,
  postfix,
} from "@aws-doc-sdk-examples/lib/utils/util-string.js";
import { sesClient } from "./libs/sesClient.js";

/**
 * Replace this with the name of an existing template.
 */
const TEMPLATE_NAME = getUniqueName("ReminderTemplate");

/**
 * Replace these with existing verified emails.
 */
const VERIFIED_EMAIL_1 = postfix(getUniqueName("Bilbo"), "@example.com");
const VERIFIED_EMAIL_2 = postfix(getUniqueName("Frodo"), "@example.com");

const USERS = [
  { firstName: "Bilbo", emailAddress: VERIFIED_EMAIL_1 },
  { firstName: "Frodo", emailAddress: VERIFIED_EMAIL_2 },
];

/**
 *
 * @param { { emailAddress: string, firstName: string }[] } users
 * @param { string } templateName the name of an existing template in SES
 * @returns { SendBulkTemplatedEmailCommand }
 */
const createBulkReminderEmailCommand = (users, templateName) => {
  return new SendBulkTemplatedEmailCommand({
    /**
     * Each 'Destination' uses a corresponding set of replacement data. We can map each user
     * to a 'Destination' and provide user specific replacement data to create personalized emails.
     *
     * Here's an example of how a template would be replaced with user data:
     * Template: <h1>Hello {{name}},</h1><p>Don't forget about the party gifts!</p>
     * Destination 1: <h1>Hello Bilbo,</h1><p>Don't forget about the party gifts!</p>
     * Destination 2: <h1>Hello Frodo,</h1><p>Don't forget about the party gifts!</p>
     */
    Destinations: users.map((user) => ({
      Destination: { ToAddresses: [user.emailAddress] },
      ReplacementTemplateData: JSON.stringify({ name: user.firstName }),
    })),
    DefaultTemplateData: JSON.stringify({ name: "Shireling" }),
    Source: VERIFIED_EMAIL_1,
    Template: templateName,
  });
};

const run = async () => {
  const sendBulkTemplateEmailCommand = createBulkReminderEmailCommand(
    USERS,
    TEMPLATE_NAME,
  );
  try {
    return await sesClient.send(sendBulkTemplateEmailCommand);
  } catch (caught) {
    if (caught instanceof Error && caught.name === "MessageRejected") {
      /** @type { import('@aws-sdk/client-ses').MessageRejected} */
      const messageRejectedError = caught;
      return messageRejectedError;
    }
    throw caught;
  }
};
```

Untuk menjalankan contoh, masukkan yang berikut ini di command prompt. Email diantrian untuk dikirim oleh Amazon SES.

```
node ses_sendbulktemplatedemail.js
```

Kode contoh ini dapat ditemukan [di sini GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/ses/src/ses_sendbulktemplatedemail.js). 