AWS SDK for JavaScript V3 API リファレンスガイドでは、AWS SDK for JavaScript バージョン3 (V3) のすべての API オペレーションについて詳しく説明します。
Amazon SESでのE メールテンプレートの操作
この 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を設定します。
CreateTemplateCommand、SES、TemplateName および 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 に