

AWS SDK for JavaScript v2 はサポート終了となりました。[AWS SDK for JavaScript v3](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/) に移行することをお勧めします。その他の詳細、移行方法については、こちらの[発表内容](https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)を参照してください。

# Amazon SES での受信ルールの使用
<a name="ses-examples-receipt-rules"></a>

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

**この Node.js コード例は以下を示しています。**
+ 受信ルールを作成および削除します。
+ 受信ルールを受信ルールセットに整理します。

Amazon SES の受信ルールは、所有する E メールアドレスやドメインで受信した E メールの処理方法を指定します。*受信ルール*は、条件および順序指定されたアクションのリストで構成されます。受信メールの受信者が受信ルールの条件で指定された受信者と一致すると、Amazon SES は受信ルールに指定されているアクションを実行します。

Amazon SES を E メールレシーバーとして使用するには、少なくとも 1 つの有効な*受信ルールセット*が必要です。受信ルールセットは、検証済みのドメイン全体で受信するメールに対して Amazon SES でどのような処理を行うのかを指定する、順序が指定された受信ルールの集合です。詳細については、Amazon Simple Email Service デベロッパーガイドの [Amazon SES による E メール受信の受信ルールの作成](Amazon Simple Email Service Developer Guidereceiving-email-receipt-rules.html) および [Amazon SES による E メール受信の受信ルールセットの作成](Amazon Simple Email Service Developer Guidereceiving-email-receipt-rule-set.html)を参照してください。

## シナリオ
<a name="ses-examples-receipt-rules-scenario"></a>

この例では、一連の Node.js モジュールを使用してさまざまな方法で E メールを送信します。Node.js モジュールは SDK for JavaScript を使用し、`AWS.SES` クライアントクラスの次のメソッドを使用して E メールテンプレートを作成して使用します。
+ [`createReceiptRule`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#createReceiptRule-property)
+ [`deleteReceiptRule`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteReceiptRule-property)
+ [`createReceiptRuleSet`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#createReceiptRuleSet-property)
+ [`deleteReceiptRuleSet`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#deleteReceiptRuleSet-property)

## 前提条件タスク
<a name="ses-examples-receipt-rules-prerequisites"></a>

この例をセットアップして実行するには、まず次のタスクを完了する必要があります。
+ Node.js をインストールします。Node.js をインストールする方法の詳細については、[Node.js ウェブサイト](https://nodejs.org)を参照してください。
+ ユーザーの認証情報を使用して、共有設定ファイルを作成します。認証情報 JSON ファイルの提供の詳細については、「[共有認証情報ファイルから Node.js に認証情報をロードする](loading-node-credentials-shared.md)」を参照してください。

## Amazon S3 受信ルールの作成
<a name="ses-examples-creatingreceipt-rules"></a>

Amazon SES の受信ルールにはそれぞれ、順序どおりに並べられたアクションのリストが含まれます。この例では、メールメッセージを Amazon S3 バケットに配信する Amazon S3 アクションを使用して受信ルールを作成します。受信ルールのアクションの詳細については、Amazon Simple Email Service デベロッパーガイドの[アクションのオプション](Amazon Simple Email Service Developer Guidereceiving-email-action.html)を参照してください。

Amazon SES が Amazon S3 バケットに E メールを書き込むようにするには、Amazon SES に `PutObject` 許可を付与するバケットポリシーを作成します。このバケットポリシーの作成については、Amazon Simple Email Service デベロッパーガイドの [Amazon SES に Amazon S3 バケットへの書き込みを許可する](Amazon Simple Email Service Developer Guidereceiving-email-permissions.html#receiving-email-permissions-s3.html)を参照してください。

この例では、Node.js モジュールを使用して Amazon SES で受信ルールを作成し、受信したメッセージを Amazon S3 バケットに保存します。`ses_createreceiptrule.js` というファイル名で Node.js モジュールを作成します。前に示したように SDK を設定します。

受信ルールセット用に作成するのに必要な値を渡すためのパラメータオブジェクトを作成します。`createReceiptRuleSet` メソッドを呼び出すには、Amazon SES サービスオブジェクトを呼び出すための promise を作成し、パラメータを渡します。その後、promise コールバックの `response` を処理します。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create createReceiptRule params
var params = {
  Rule: {
    Actions: [
      {
        S3Action: {
          BucketName: "S3_BUCKET_NAME",
          ObjectKeyPrefix: "email",
        },
      },
    ],
    Recipients: [
      "DOMAIN | EMAIL_ADDRESS",
      /* more items */
    ],
    Enabled: true | false,
    Name: "RULE_NAME",
    ScanEnabled: true | false,
    TlsPolicy: "Optional",
  },
  RuleSetName: "RULE_SET_NAME",
};

// Create the promise and SES service object
var newRulePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .createReceiptRule(params)
  .promise();

// Handle promise's fulfilled/rejected states
newRulePromise
  .then(function (data) {
    console.log("Rule created");
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

この例を実行するには、コマンドラインに次のように入力します。Amazon SES により受信ルールが作成されます。

```
node ses_createreceiptrule.js
```

 このサンプルコードは、[このGitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_createreceiptrule.js)にあります。

## 受信ルールの削除
<a name="ses-examples-deletingreceipt-rules"></a>

この例では、Node.js モジュールを使用して Amazon SES で E メールを送信します。`ses_deletereceiptrule.js` というファイル名で Node.js モジュールを作成します。前に示したように SDK を設定します。

削除する受信ルールの名前を渡すためのパラメータオブジェクトを作成します。`deleteReceiptRule` メソッドを呼び出すには、Amazon SES サービスオブジェクトを呼び出すための promise を作成し、パラメータを渡します。その後、promise コールバックの `response` を処理します。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create deleteReceiptRule params
var params = {
  RuleName: "RULE_NAME" /* required */,
  RuleSetName: "RULE_SET_NAME" /* required */,
};

// Create the promise and SES service object
var newRulePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .deleteReceiptRule(params)
  .promise();

// Handle promise's fulfilled/rejected states
newRulePromise
  .then(function (data) {
    console.log("Receipt Rule Deleted");
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

この例を実行するには、コマンドラインに次のように入力します。Amazon SES により、受信ルールセットリストが作成されます。

```
node ses_deletereceiptrule.js
```

 このサンプルコードは、[このGitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_deletereceiptrule.js)にあります。

## 受信ルールセットの作成
<a name="ses-examples-creatingreceiptrulesets"></a>

この例では、Node.js モジュールを使用して Amazon SES で E メールを送信します。`ses_createreceiptruleset.js` というファイル名で Node.js モジュールを作成します。前に示したように SDK を設定します。

新しい受信ルールセットの名前を渡すためのパラメータオブジェクトを作成します。`createReceiptRuleSet` メソッドを呼び出すには、Amazon SES サービスオブジェクトを呼び出すための promise を作成し、パラメータを渡します。その後、promise コールバックの `response` を処理します。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var newRulePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .createReceiptRuleSet({ RuleSetName: "NAME" })
  .promise();

// Handle promise's fulfilled/rejected states
newRulePromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

この例を実行するには、コマンドラインに次のように入力します。Amazon SES により、受信ルールセットリストが作成されます。

```
node ses_createreceiptruleset.js
```

 このサンプルコードは、[このGitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_createreceiptruleset.js)にあります。

## 受信ルールセットの削除
<a name="ses-examples-deletingreceiptrulesets"></a>

この例では、Node.js モジュールを使用して Amazon SES で E メールを送信します。`ses_deletereceiptruleset.js` というファイル名で Node.js モジュールを作成します。前に示したように SDK を設定します。

削除する受信ルールセットの名前を渡すためのオブジェクトを作成します。`deleeReceiptRuleSet` メソッドを呼び出すには、Amazon SES サービスオブジェクトを呼び出すための promise を作成し、パラメータを渡します。その後、promise コールバックの `response` を処理します。

```
// Load the AWS SDK for Node.js
var AWS = require("aws-sdk");
// Set the region
AWS.config.update({ region: "REGION" });

// Create the promise and SES service object
var newRulePromise = new AWS.SES({ apiVersion: "2010-12-01" })
  .deleteReceiptRuleSet({ RuleSetName: "NAME" })
  .promise();

// Handle promise's fulfilled/rejected states
newRulePromise
  .then(function (data) {
    console.log(data);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

この例を実行するには、コマンドラインに次のように入力します。Amazon SES により、受信ルールセットリストが作成されます。

```
node ses_deletereceiptruleset.js
```

 このサンプルコードは、[このGitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/ses/ses_deletereceiptruleset.js)にあります。