Amazon SES アイデンティティの管理 - AWS SDK for JavaScript

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

Amazon SES アイデンティティの管理

JavaScript code example that applies to Node.js execution

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

  • Amazon SES で使用されている E メールアドレスとドメインを確認する方法。

  • Amazon SES アイデンティティにAWS Identity and Access Management(IAM) ポリシーを割り当てる方法。

  • AWS アカウントのすべての Amazon SES アイデンティティを一覧表示する方法。

  • Amazon SES で使用されているアイデンティティを削除する方法。

Amazon SES アイデンティティは、Amazon SES が E メールの送信に使用する E メールアドレスまたはドメインです。Amazon SES では、E メールアイデンティティを検証して、それを所有していることを確認し、他のユーザーに使用されないようにする必要があります。

Amazon SES の E メールアドレスとドメインを確認する方法の詳細については、Amazon Simple Email Service デベロッパーガイドのAmazon SESでのEメールアドレスとドメインの検証を参照してください。Amazon SES での送信認可の詳細については、Amazon SES 送信認可の概要を参照してください。

シナリオ

この例では、一連の Node.js モジュールを使用して Amazon SES のアイデンティティを検証および管理します。Node.js モジュールは、SES クライアントクラスの次のメソッドを使用し、SDK for JavaScript を使用して 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 構文」を参照してください。

アイデンティティの一覧表示

この例では、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_listidentities.jsというファイル名で Node.js モジュールを作成します。必要なクライアントとパッケージのインストールを含め、前述のようにSDKを設定します。

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

返されるdataには、IdentityTypeパラメーターで指定されたドメインIDの配列が含まれます。

注記

IdentityTypeを「EmailAddress」または「Domain」のIDタイプに置き換えます。

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

この例を実行するには、コマンドプロンプトで以下を入力します。

node ses_listidentities.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_verifyemailidentity.jsというファイル名で Node.js モジュールを作成します。前述のように、必要なクライアントとパッケージのダウンロードを含め、SDKを設定します。

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

注記

EMAIL_ADDRESS を name@example.com などの E メールアドレスに置き換えます。

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

この例を実行するには、コマンドプロンプトで以下を入力します。検証のためにドメインが Amazon SES に追加されます。

node ses_verifyemailidentity.js

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

ドメイン ID の検証

この例では、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_verifydomainidentity.jsというファイル名で Node.js モジュールを作成します。必要なクライアントとパッケージのインストールを含め、前述のようにSDKを設定します。

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

注記

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

注記

DOMAIN_NAME をドメイン名に置き換えます。

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

この例を実行するには、コマンドプロンプトで以下を入力します。検証のためにドメインが Amazon SES に追加されます。

node ses_verifydomainidentity.js

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

アイデンティティの削除

この例では、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_deleteidentity.jsというファイル名で Node.js モジュールを作成します。必要なクライアントとパッケージのインストールを含め、前述のようにSDKを設定します。

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

注記

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

注記

IDENTITY_EMAIL を削除対象の ID の E メールアドレスに置き換えます。

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

この例を実行するには、コマンドプロンプトで以下を入力します。

node ses_deleteidentity.js

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