Amazon SESでのE メールテンプレートの操作 - AWS SDK for JavaScript

AWS SDK for JavaScript V3 API リファレンスガイドでは、AWS SDK for JavaScript バージョン3 (V3) のすべての API オペレーションについて詳しく説明します。

Amazon SESでのE メールテンプレートの操作

JavaScript code example that applies to Node.js execution

この Node.js コード例は以下を示しています。

  • すべてのEメールテンプレートの一覧表を取得する方法

  • E メールテンプレートを取得して更新する方法

  • E メールテンプレートを作成して削除する方法

Amazon SES では、Eメールテンプレートを使用してパーソナライズされたEメールメッセージを送信できます。Amazon SESでEメールテンプレートを作成および使用する方法の詳細については、Amazon シンプル Eメールサービス・ディベロッパーガイドの「Amazon SES APIを使用したパーソナライズされたEメールの送信」を参照してください。

シナリオ

この例では、一連の Node.js モジュールを使用して E メールテンプレートを操作します。Node.js モジュールは SDK for JavaScript を使用し、SES クライアントクラスの次のメソッドを使用して E メールテンプレートを作成して使用します。

前提条件タスク

この例をセットアップして実行するには、まず次のタスクを完了する必要があります。

  • これらの Node TypeScript の例を実行するようにプロジェクト環境を設定し、必要な AWS SDK for JavaScript とサードパーティーのモジュールをインストールします。「GitHub」の指示に従います。 

  • ユーザーの認証情報を使用して、共有設定ファイルを作成します。共有認証情報ファイルの提供の詳細については、「AWS SDK とツールのリファレンスガイド」の「共有設定ファイルおよび認証情報ファイル」を参照してください。

重要

これらの例は、ECMAScript6 (ES6) を使用してクライアントサービスオブジェクトとコマンドをimport/export する方法を示します。

  • これには Node.js バージョン13.x以降が必要です。Node.js の最新バージョンをダウンロードしてインストールするには、「Node.js ダウンロード」を参照してください。

  • CommonJS 構文を使用する場合は、「JavaScript ES6/CommonJS 構文」を参照してください。

Eメールテンプレートの一覧表示

この例では、Node.js モジュールを使用して Amazon SES で使用する E メールテンプレートを作成します。

libsディレクトリを作成し、ファイル名sesClient.jsでNode.js モジュールを作成します。以下のコードをコピーし、ペーストしてAmazon SES クライアントオブジェクトを作成します。REGION(地域)を、AWS地域に置き換えます。

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "us-east-1"; // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

このサンプルコードは、このGitHubにで見つけられます。

ses_listtemplates.jsというファイル名で Node.js モジュールを作成します。必要なクライアントとパッケージのインストールを含め、前述のようにSDKを設定します。

ListTemplatesCommand クライアントクラスの SES メソッドのパラメータを渡すオブジェクトを作成します。ListTemplatesCommandメソッドを呼び出すには、Amazon SES クライアントサービスオブジェクトを起動し、パラメータを渡します。

注記

この例では、必要なAWSサービス V3 パッケージクライアント、V3 コマンドをインポートして使用し、また非同期/待機パターンでsendメソッドを使用します。この例は、代わりに少し変更を加えてV2コマンドで作成できます。詳細については、「v3 コマンドの使用」を参照してください。

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; } };

この例を実行するには、コマンドプロンプトで以下を入力します。Amazon SES はテンプレートのリストを返します。

node ses_listtemplates.js

このサンプルコードは、この GitHub にで見つけられます。

E メールテンプレートの取得

この例では、Node.js モジュールを使用して Amazon SES で使用する E メールテンプレートを取得します。

libsディレクトリを作成し、ファイル名sesClient.jsでNode.js モジュールを作成します。以下のコードをコピーし、ペーストしてAmazon SES クライアントオブジェクトを作成します。REGION(地域)を、AWS地域に置き換えます。

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "us-east-1"; // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

このサンプルコードは、このGitHubにで見つけられます。

ses_gettemplate.jsというファイル名で Node.js モジュールを作成します。必要なクライアントとパッケージのインストールを含め、前述のようにSDKを設定します。

TemplateName クライアントクラスの GetTemplateCommand メソッドに SES パラメータを渡すオブジェクトを作成します。GetTemplateCommandメソッドを呼び出すには、Amazon SES クライアントサービスオブジェクトを起動し、パラメータを渡します。

注記

この例では、必要なAWSサービス V3 パッケージクライアント、V3 コマンドをインポートして使用し、また非同期/待機パターンでsendメソッドを使用します。この例は、代わりに少し変更を加えてV2コマンドで作成できます。詳細については、「v3 コマンドの使用」を参照してください。

注記

TEMPLATE_NAME(テンプレート名)を返すテンプレートの名前に置き換えます。

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; } };

この例を実行するには、コマンドプロンプトで以下を入力します。Amazon SES はテンプレートの詳細を返します。

node ses_gettemplate.js

このサンプルコードは、この GitHub にで見つけられます。

Eメールテンプレートの作成

この例では、Node.js モジュールを使用して Amazon SES で使用する E メールテンプレートを作成します。

libsディレクトリを作成し、ファイル名sesClient.jsでNode.js モジュールを作成します。以下のコードをコピーし、ペーストしてAmazon SES クライアントオブジェクトを作成します。REGION(地域)を、AWS地域に置き換えます。

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "us-east-1"; // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

このサンプルコードは、このGitHubにで見つけられます。

ses_createtemplate.jsというファイル名で Node.js モジュールを作成します。必要なクライアントとパッケージのインストールを含め、前述のようにSDKを設定します。

CreateTemplateCommandSESTemplateName および HtmlPart を含む、SubjectPart クライアントクラスの TextPart メソッドのパラメータを渡すオブジェクトを作成します。CreateTemplateCommandメソッドを呼び出すには、Amazon SES クライアントサービスオブジェクトを起動し、パラメータを渡します。

注記

この例では、必要なAWSサービス V3 パッケージクライアント、V3 コマンドをインポートして使用し、また非同期/待機パターンでsendメソッドを使用します。この例は、代わりに少し変更を加えてV2コマンドで作成できます。詳細については、「v3 コマンドの使用」を参照してください。

注記

TEMPLATE_NAME を新しいテンプレートの名前に、HtmlPart を E メールの HTML タグ付きコンテンツに、SubjectPart を E メールの件名に置き換えてください。

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; } };

この例を実行するには、コマンドプロンプトで以下を入力します。テンプレートが Amazon SES に追加されます。

node ses_createtemplate.js

このサンプルコードは、この GitHub にで見つけられます。

E メールテンプレートの更新

この例では、Node.js モジュールを使用して Amazon SES で使用する E メールテンプレートを作成します。

libsディレクトリを作成し、ファイル名sesClient.jsでNode.js モジュールを作成します。以下のコードをコピーし、ペーストしてAmazon SES クライアントオブジェクトを作成します。REGION(地域)を、AWS地域に置き換えます。

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "us-east-1"; // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

このサンプルコードは、このGitHubにで見つけられます。

ses_updatetemplate.jsというファイル名で Node.js モジュールを作成します。必要なクライアントとパッケージのインストールを含め、前述のようにSDKを設定します。

必要な Template パラメータを TemplateName クライアントクラスの UpdateTemplateCommand メソッドに渡して、テンプレートで更新する SES パラメータ値を渡すオブジェクトを作成します。UpdateTemplateCommandメソッドを呼び出すには、Amazon SES サービスオブジェクトを起動し、パラメータを渡します。

注記

この例では、必要なAWSサービス V3 パッケージクライアント、V3 コマンドをインポートして使用し、また非同期/待機パターンでsendメソッドを使用します。この例は、代わりに少し変更を加えてV2コマンドで作成できます。詳細については、「v3 コマンドの使用」を参照してください。

注記

TEMPLATE_NAME をテンプレートの名前に、HTML_PART を E メールの 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; } };

この例を実行するには、コマンドプロンプトで以下を入力します。Amazon SES はテンプレートの詳細を返します。

node ses_updatetemplate.js

このサンプルコードは、この GitHub にで見つけられます。

E メールテンプレートの削除

この例では、Node.js モジュールを使用して Amazon SES で使用する E メールテンプレートを作成します。

libsディレクトリを作成し、ファイル名sesClient.jsでNode.js モジュールを作成します。以下のコードをコピーし、ペーストしてAmazon SES クライアントオブジェクトを作成します。REGION(地域)を、AWS地域に置き換えます。

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "us-east-1"; // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

このサンプルコードは、このGitHubにで見つけられます。

ses_deletetemplate.jsというファイル名で Node.js モジュールを作成します。必要なクライアントとパッケージのインストールを含め、前述のようにSDKを設定します。

必要な TemplateName パラメータを DeleteTemplateCommand クライアントクラスの SES メソッドに渡すオブジェクトを作成します。DeleteTemplateCommandメソッドを呼び出すには、Amazon SES サービスオブジェクトを起動し、パラメータを渡します。

注記

この例では、必要なAWSサービス V3 パッケージクライアント、V3 コマンドをインポートして使用し、また非同期/待機パターンでsendメソッドを使用します。この例は、代わりに少し変更を加えてV2コマンドで作成できます。詳細については、「v3 コマンドの使用」を参照してください。

注記

TEMPLATE_NAME を削除するテンプレートの名前に置き換えてください。

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; } };

この例を実行するには、コマンドプロンプトで以下を入力します。Amazon SES はテンプレートの詳細を返します。

node ses_deletetemplate.js

このサンプルコードは、この GitHub にで見つけられます。