

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 動作選項
<a name="receiving-email-action"></a>

每個用於 Amazon SES 電子郵件接收的接收規則皆包含動作的排序清單。本節說明每個動作類型的特定選項。

動作類型如下：
+ [新增標頭動作](receiving-email-action-add-header.md)
+ [傳回退信回應動作](receiving-email-action-bounce.md)
+ [呼叫 Lambda 函數動作](receiving-email-action-lambda.md)
+ [傳送至 S3 儲存貯體動作](receiving-email-action-s3.md)
+ [發佈至 Amazon SNS 主題動作](receiving-email-action-sns.md)
+ [停止規則集動作](receiving-email-action-stop.md)
+ [與 Amazon WorkMail 整合動作](receiving-email-action-workmail.md)

# 新增標頭動作
<a name="receiving-email-action-add-header"></a>

**Add Header (新增標頭)** 動作會新增自訂標頭至收到的電子郵件。此動作通常只會與另一個動作搭配使用。此動作有下列選項。
+ **Header name (標頭名稱)** - 要新增的標頭名稱。名稱必須介於 1 和 50 個字元間 (包含 50 個字元)，且僅可包含英數字元 (a-z、A-Z、0-9) 以及連字號。
+ **Header value (標頭值)** - 要新增的標頭值。標題值必須小於 2048 個字元，而且不可包含換行字元 (「\$1r」或「\$1n」)。

# 傳回退信回應動作
<a name="receiving-email-action-bounce"></a>

**退信**動作會傳回退信回應給寄件者，以拒收該封電子郵件，且可選擇是否透過 Amazon SNS 通知您。此動作有下列選項。
+ **SMTP Reply Code (SMTP 回應程式碼) – **SMTP 回應程式碼，如 [RFC 5321](https://tools.ietf.org/html/rfc5321) 中所定義。
+ **SMTP Status Code (SMTP 狀態程式碼) - **SMTP 強化狀態程式碼，如 [RFC 3463](https://tools.ietf.org/html/rfc3463) 中所定義。
+ **Message (訊息) - **包含在退信電子郵件中可供閱讀的文字。
+ **回覆寄件者** - 遭退信電子郵件之寄件者的電子郵件地址。此為將送出退信電子郵件的地址。須透過 Amazon SES 驗證。
**注意**  
退信訊息不會透過您的自訂「寄件人」網域傳送，但是由 SES 在內部產生，並僅以 `amazonses.com` DKIM 簽章簽署。作為解決方法，請使用**回覆寄件者**選項來設定退信訊息的電子郵件地址。如需詳細資訊，請參閱此[AWS re:Post 文章](https://repost.aws/questions/QURvN-26L_SJOcY9JoSFgCdg/ses-receiving-return-bounce-response-action-not-sending-bounce)。
+ **SNS 主題** - Amazon SNS 主題的名稱或 ARN，可選擇是否在送出退信電子郵件時通知。Amazon SNS 主題 ARN 的範例為 *arn:aws:sns:us-east-1:123456789012:MyTopic*。選擇 **Create SNS Topic** (建立 SNS 主題) 來設定動作時，也可以建立 Amazon SNS 主題。如需 Amazon SNS 主題的詳細資訊，請參閱 [Amazon Simple Notification Service 開發人員指南](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)。
**注意**  
您選擇的 Amazon SNS 主題必須與您用來接收電子郵件的 Amazon SES 端點位於相同的 AWS 區域。

您可以在這些欄為中輸入您自訂的值，或者可選擇根據退信原因而產生的範本值來填入 SMTP Reply Code (SMTP 回應程式碼)、SMTP Status Code (SMTP 狀態程式碼) 以及 Message (訊息) 欄位。可使用以下範本：
+ **Mailbox Does Not Exist (信箱不存在) - **SMTP Reply Code = 550、SMTP Status Code = 5.1.1
+ **Message Too Large (訊息過大) - **SMTP Reply Code = 552、SMTP Status Code = 5.3.4
+ **信箱已滿** - SMTP Reply Code = 552、SMTP Status Code = 5.2.2
+ **Message Content Rejected (訊息內容遭拒) - **SMTP Reply Code = 500、SMTP Status Code = 5.6.1
+ **Unknown Failure (未知的失敗原因) - **SMTP Reply Code = 554、SMTP Status Code = 5.0.0
+ **Temporary Failure (暫時性失敗) - **SMTP Reply Code = 450、SMTP Status Code = 4.0.0

如需其他可能在欄位中輸入自訂值來使用的退信代碼，請參閱 [RFC 3463](https://tools.ietf.org/html/rfc3463)。

# 呼叫 Lambda 函數動作
<a name="receiving-email-action-lambda"></a>

Lambda 動作透過 Lambda 函數來呼叫您的程式碼，且可選擇是否透過 Amazon SNS 通知您。此規則動作具有下列選項和需求：

**選項**
+ **Lambda 函數** -Lambda 函數的 ARN。Lambda 函數 ARN 的範例為 *arn:aws:lambda:us-east-1:account-id:function:MyFunction*。
+ **叫用類型** - Lambda 函數的叫用類型。叫用類型 **RequestResponse** 表示函數執行結果為立即回應。叫用類型 **Event** 表示函數為非同步叫用。建議您使用 **Event** 叫用類型，除非您的使用案例必須使用非同步執行。

  **RequestResponse** 呼叫有 30 秒的逾時。

  如需詳細資訊，請參閱 *AWS Lambda 開發人員指南*中的[叫用 Lambda 函數](https://docs.aws.amazon.com/lambda/latest/dg/lambda-invocation.html)。
+ **SNS Topic** (SNS 主題) - Amazon SNS 主題的名稱或 ARN，用來於指定的 Lambda 函數觸發時通知。Amazon SNS 主題 ARN 的範例為 *arn:aws:sns:us-east-1:123456789012:MyTopic*。如需詳細資訊，請參閱《Amazon Simple Notification Service 開發人員指南》**中的[建立 Amazon SNS 主題](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)。

**要求**
+ 您選擇的 Lambda 函數必須與您用來接收電子郵件的 Amazon SES 端點位於相同的 AWS 區域。
+ 您選擇的 Amazon SNS 主題必須與您用來接收電子郵件的 Amazon SES 端點位於相同的 AWS 區域。

## 編寫您的 Lambda 函數
<a name="receiving-email-action-lambda-function"></a>

若要處理您的電子郵件，可以非同步方式叫用 Lambda 函數 (也就是使用 `Event` 叫用類型)。傳送到 Lambda 函數的事件物件將包含關於傳入電子郵件事件的中繼資料。您也可以使用中繼資料存取來自 Amazon S3 儲存貯體的訊息內容。

如果您想要實際控制郵件流程，必須以非同步方式叫用您的 Lambda 函數 (也就是使用 `RequestResponse` 叫用類型)，而您的 Lambda 函數必須以兩個引數來呼叫 `callback` 方法：第一個引數為 `null`，第二個引數是 `disposition` 屬性 (設為 `STOP_RULE`、`STOP_RULE_SET` 或 `CONTINUE`)。如果第二個引數是 `null` 或沒有有效的 `disposition` 屬性，郵件流程將持續，且將處理其他動作和規則，與 `CONTINUE` 相同。

例如，您可以在 Lambda 函數程式碼末端編寫下列行，以停止接收規則集：

```
callback( null, { "disposition" : "STOP_RULE_SET" });
```

如需 AWS Lambda 程式碼範例，請參閱 [Lambda 函數範例](receiving-email-action-lambda-example-functions.md)。如需高階使用案例的範例，請參閱 [使用案例範例](receiving-email-action-lambda-example-use-cases.md)。

### 輸入格式
<a name="receiving-email-action-lambda-input"></a>

Amazon SES 以 JSON 格式傳遞資訊至 Lambda 函數。最上層物件包含 `Records` 陣列，以屬性 `eventSource`、`eventVersion` 以及 `ses` 所填入。`ses` 物件包含 `receipt` 與 `mail` 物件，與「[通知內容](receiving-email-notifications-contents.md)」中所述 Amazon SNS 通知的格式完全相同。

Amazon SES 傳遞給 Lambda 的資料包括訊息的中繼資料，以及數個電子郵件標頭。不過其中不包含訊息的內文。

以下為 Amazon SES 提供給 Lambda 函數之輸入結構的高階檢視。

```
{
   "Records": [
      {
        "eventSource": "aws:ses",
        "eventVersion": "1.0",
        "ses": {
           "receipt": {
               <same contents as SNS notification>
            },
           "mail": {
               <same contents as SNS notification>
           }
         }
     }
   ]
}
```

### 傳回值
<a name="receiving-email-action-lambda-function-return-values"></a>

您的 Lambda 函數可藉由傳回下列其中一個值來控制郵件流程：
+ `STOP_RULE` - 將不會處理目前接收規則中的其他動作，但是將處理其他接收規則。
+ `STOP_RULE_SET` - 不會處理其他動作或接收規則。
+ `CONTINUE` 或任何其他無效的值 - 這表示可以處理其他動作和接收規則。

**Topics**
+ [編寫您的 Lambda 函數](#receiving-email-action-lambda-function)
+ [傳入電子郵件事件範例](receiving-email-action-lambda-event.md)
+ [使用案例範例](receiving-email-action-lambda-example-use-cases.md)
+ [Lambda 函數範例](receiving-email-action-lambda-example-functions.md)

# 傳入電子郵件事件範例
<a name="receiving-email-action-lambda-event"></a>

有兩種方式可將傳入的電子郵件事件傳送到 Lambda 函數。第一種方法是在接收規則中使用 Lambda 動作，將事件記錄直接傳送到函數。第二種方法是在接收規則中使用 Amazon SNS 動作，將事件記錄傳送到 Amazon SNS，然後新增 Lambda 函數做為 Amazon SNS 主題的訂閱端點。

本節包含 Amazon SES 可以傳送到 Lambda 的事件記錄範例。您可以使用這些範例來建立及測試 Lambda 函數。

**注意**  
本節中的範例包含分行符號以方便閱讀。如果您複製本節中的範例，您應該移除額外的分行符號來產生有效的 JSON 物件。

## Lambda 動作提供的事件記錄
<a name="receiving-email-action-lambda-event-lambdaaction"></a>

當您將 Lambda 動作新增至接收規則時，Amazon SES 會在每次收到傳入訊息時傳送事件記錄給 Lambda。此事件包含有關傳入訊息的幾個電子郵件標頭的資訊，以及對傳入訊息 Amazon SES 執行的多個測試結果。不過，它會省略傳入電子郵件的內文。

下列範例顯示這些事件記錄通常包含的值。

```
{
  "Records": [{
    "eventSource": "aws:ses",
    "eventVersion": "1.0",
    "ses": {
      "mail": {
        "timestamp": "2019-08-05T21:30:02.028Z",
        "source": "prvs=144d0cba7=sender@example.com",
        "messageId": "EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000",
        "destination": ["recipient@example.com"],
        "headersTruncated": false,
        "headers": [{
          "name": "Return-Path",
          "value": "<prvs=144d0cba7=sender@example.com>"
        }, {
          "name": "Received",
          "value": "from smtp.example.com [203.0.113.0]) by inbound-smtp.us-east-1.amazonaws.com 
                    with SMTP id bsvpsoklfhu7u50iur7h0kk9a2ou0r7iexample for recipient@example.com;
                    Mon, 05 Aug 2019 21:30:02 +0000 (UTC)"
        }, {
          "name": "X-SES-Spam-Verdict",
          "value": "PASS"
        }, {
          "name": "X-SES-Virus-Verdict",
          "value": "PASS"
        }, {
          "name": "Received-SPF",
          "value": "pass (spfCheck: domain of example.com designates 203.0.113.0 as permitted sender) 
                    client-ip=203.0.113.0; envelope-from=prvs=144d0cba42=sender@example.com; helo=
                    smtp.example.com;"
        }, {
          "name": "Authentication-Results",
          "value": "amazonses.com; spf=pass (spfCheck: domain of example.com designates 203.0.113.0
                    as permitted sender) client-ip=203.0.113.0; envelope-from=prvs=144d0cba42=
                    sender@example.com; helo=smtp.example.com; dkim=pass header.i=@example.com; 
                    dmarc=none header.from=example.com;"
        }, {
          "name": "X-SES-RECEIPT",
          "value": "AEFBQUFBQUFBQUFHbFo0VU81VzVuYmRDNm51nhTVWpabDh6J4V2l5cG5PSHFtNzlBeUk90example"
        }, {
          "name": "X-SES-DKIM-SIGNATURE",
          "value": "a=rsa-sha256; q=dns/txt; b=Cm1emU30VcD6example=; c=relaxed/simple; s=6gbrjpgwjs
                    5zn6fwqknexample; d=amazonses.com; t=1567719002; v=1; bh=DSofsjAoUvyZj6YsBDP5en
                    pRO1otGb7Nes0Qexample=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-Version:
                    Content-Type:X-SES-RECEIPT;"
        }, {
          "name": "DKIM-Signature",
          "value": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; i=@example.com; q=dns/txt; 
                    s=example12345; t=1567719001; x=1599255001; h=from:to:subject:date:message-id:
                    references:in-reply-to:mime-version; bh=sjAoUvyZj6YsBDP5enpRO1otGb7s0Qexample=; 
                    b=EQw2D4RLOW2IHE9OgfEA4WXp+AENJtaD2+63wmd5J+d+t/xoaiKUGClOS7WhpyOmlipryOz+iOhxU
                    v350xJIHjLTi9Jsnlw76mRK8o4770TaUz620joCVN21n4cxsrRZpv+1kS0EcAxaF30pmwlni+XT4ems
                    Vxn7zO0I8example=;"
        }, {
          "name": "Received",
          "value": "from mail.example.com (mail.example.com [203.0.113.0]) by email-inbound-relay-
                    1d-9ec21598.us-east-1.example.com (Postfix) with ESMTPS id 57F83A2042 for 
                    <recipient@example.com>; Mon, 5 Aug 2019 21:29:58 +0000 (UTC)"
        }, {
          "name": "From",
          "value": "\"Doe, John\" <sender@example.com>"
        }, {
          "name": "To",
          "value": "\"recipient@example.com\" <recipient@example.com>"
        }, {
          "name": "Subject",
          "value": "This is a test"
        }, {
          "name": "Thread-Topic",
          "value": "This is a test"
        }, {
          "name": "Thread-Index",
          "value": "AQHVZDAaQ58yKI8q7kaAjkhC5stGexample"
        }, {
          "name": "Date",
          "value": "Mon, 5 Aug 2019 21:29:57 +0000"
        }, {
          "name": "Message-ID",
          "value": "<F8098FDD-49A3-442D-9935-F6112example@example.com>"
        }, {
          "name": "References",
          "value": "<1FCED16B-F6B0-4506-A6F0-594DFexample@example.com>"
        }, {
          "name": "In-Reply-To",
          "value": "<1FCED16B-F6B0-4506-A6F0-594DFexample@example.com>"
        }, {
          "name": "Accept-Language",
          "value": "en-US"
        }, {
          "name": "Content-Language",
          "value": "en-US"
        }, {
          "name": "X-MS-Has-Attach",
          "value": ""
        }, {
          "name": "X-MS-TNEF-Correlator",
          "value": ""
        }, {
          "name": "x-ms-exchange-messagesentrepresentingtype",
          "value": "1"
        }, {
          "name": "x-ms-exchange-transport-fromentityheader",
          "value": "Hosted"
        }, {
          "name": "x-originating-ip",
          "value": "[203.0.113.0]"
        }, {
          "name": "Content-Type",
          "value": "multipart/alternative; boundary=\"_000_F8098FDD49A344F6112B195BDAexamplecom_\""
        }, {
          "name": "MIME-Version",
          "value": "1.0"
        }, {
          "name": "Precedence",
          "value": "Bulk"
        }],
        "commonHeaders": {
          "returnPath": "prvs=144d0cba7=sender@example.com",
          "from": ["\"Doe, John\" <sender@example.com>"],
          "date": "Mon, 5 Aug 2019 21:29:57 +0000",
          "to": ["\"recipient@example.com\" <recipient@example.com>"],
          "messageId": "<F8098FDD-49A3-442D-9935-F6112B195BDA@example.com>",
          "subject": "This is a test"
        }
      },
      "receipt": {
        "timestamp": "2019-08-05T21:30:02.028Z",
        "processingTimeMillis": 1205,
        "recipients": ["recipient@example.com"],
        "spamVerdict": {
          "status": "PASS"
        },
        "virusVerdict": {
          "status": "PASS"
        },
        "spfVerdict": {
          "status": "PASS"
        },
        "dkimVerdict": {
          "status": "PASS"
        },
        "dmarcVerdict": {
          "status": "GRAY"
        },
        "action": {
          "type": "Lambda",
          "functionArn": "arn:aws:lambda:us-east-1:123456789012:function:IncomingEmail",
          "invocationType": "Event"
        }
      }
    }
  }]
}
```

## Amazon SNS 動作提供的事件記錄
<a name="receiving-email-action-lambda-event-snsaction"></a>

當您新增 Amazon SNS 動作到接收規則時，通知會包含電子郵件的全部內容。如果您想要讓 Lambda 函數處理電子郵件內文，應將 Amazon SNS 動作新增至接收規則，然後在 Amazon SNS 中，將您的 Lambda 函數捐贈至 Amazon SNS 函數。此組態會在收到來自 Amazon SNS 主題的通知時啟用您的 Lambda 函數。

```
{
    'Records': [
        {
            'EventSource': 'aws:sns',
            'EventVersion': '1.0',
            'EventSubscriptionArn': 'arn:aws:sns:us-east-1:123456789012:IncomingEmail:12345678',
            'Sns': {
                'Type': 'Notification',
                'MessageId': 'EXAMPLE7c191be45-e9aedb9a-02f9-4d12-a87d-dd0099a07f8a-000000',
                'TopicArn': 'arn:aws:sns:us-east-1:123456789012:IncomingEmail',
                'Subject': 'Amazon SES Email Receipt Notification',
                'Message': <message content—see below>,
                'Timestamp': '2019-09-06T18:52:16.076Z',
                'SignatureVersion': '1',
                'Signature': '012345678901example==',
                'SigningCertUrl': 'https://sns.us-east-1.amazonaws.com/SimpleNotificationService
                                   -01234567890123456789012345678901.pem',
                'UnsubscribeUrl': 'https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&
                                   SubscriptionArn=arn:aws:sns:us-east-1:0123456789012:IncomingEmail:
                                   0b863538-3f32-462e-9c89-8d8e0example',
                'MessageAttributes': {}
            }
        }
    ]
}
```

`Message` 屬性包含 JSON 編碼的字串。此字串包含訊息的標頭和內容。訊息內文本身使用 base64 編碼。如果你想在你的 Lambda 函數中使用訊息內文，首先必須解碼 `Message` 屬性，然後解碼 `Content` 物件。

以下範例顯示 `Message` 屬性中包含的值。

```
{
  "notificationType": "Received",
  "mail": {
    "timestamp": "2019-09-06T18:52:14.965Z",
    "source": "0100016d07eb7477-8e1938ce-475e-4e4b-89cb-example-000000@amazonses.com",
    "messageId": "12345678901example",
    "destination": ["recipient@example.com"],
    "headersTruncated": false,
    "headers": [{
      "name": "Return-Path",
      "value": "<0100016d07eb7477-8e1938ce-475e-4e4b-89cb-example-000000@amazonses.com>"
    }, {
      "name": "Received",
      "value": "from a1-23.smtp-out.amazonses.com (a1-23.smtp-out.amazonses.com [203.0.113.0]) by
                inbound-smtp.us-east-1.amazonaws.com with SMTP id
                12345678901example for recipient@example.com; Fri, 06 Sep 2019
                18:52:14 +0000 (UTC)"
    }, {
      "name": "X-SES-Spam-Verdict",
      "value": "PASS"
    }, {
      "name": "X-SES-Virus-Verdict",
      "value": "PASS"
    }, {
      "name": "Received-SPF",
      "value": "pass (spfCheck: domain of amazonses.com designates 203.0.113.0 as permitted sender)
                client-ip=203.0.113.0; envelope-from=0100016d07eb7477-8e1938ce-475e-4e4b-89cb-example
                -000000@amazonses.com; helo=a1-23.smtp-out.amazonses.com;"
    }, {
      "name": "Authentication-Results",
      "value": "amazonses.com; spf=pass (spfCheck: domain of amazonses.com designates 203.0.113.0
                as permitted sender) client-ip=203.0.113.0; envelope-from=0100016d07eb7477-8e1938ce
                -475e-4e4b-89cb-example-000000@amazonses.com; helo=a1-23.smtp-out.amazonses.com;
                dkim=pass header.i=@amazonses.com; dmarc=none header.from=example.com;"
    }, {
      "name": "X-SES-RECEIPT",
      "value": "AEFBQUFBQUFBQUFFQkx0QUJZZENEXAMPLE="
    }, {
      "name": "X-SES-DKIM-SIGNATURE",
      "value": "a=rsa-sha256; q=dns/txt; b=d5azwgA2iBqAjA4NBm1ARzjJ95raRmy4G84iVdd3x2JzSHeUnQuTuLmJ
                AqRrYY3WpMIVRFy01hITaguCVjUPWBR0xF6fCEXH85cf3RNeFQyLfWZqoXKfBdjFRV+13troDterH2MxBUL
                8rjzcvdHetl0ImwlaK2PGmePTexample=; c=relaxed/simple; s=EXAMPLE7c191be45-e9aedb9a-02
                f9-4d12-a87d-dd0099a07f8a-000000; d=amazonses.com; t=1567795935; v=1; bh=CZ1SghsYaA
                6SSCbitzsLISeFoNlpdtH1Pyiexample=; h=From:To:Cc:Bcc:Subject:Date:Message-ID:MIME-
                Version:Content-Type:X-SES-RECEIPT;"
    }, {
      "name": "DKIM-Signature",
      "value": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=EXAMPLE7c191be45-e9aedb9a-02f9-
                4d12-a87d-dd0099a07f8a-000000; d=amazonses.com; t=1567795934; h=From:To:Subject:
                MIME-Version:Content-Type:Message-ID:Date:Feedback-ID; bh=CZ1SghsYaA6SSCbitzsLISeFo
                NlpdtH1Pyiexample=; b=L6VXqR1PSN/FYqJI/VAfPRKFgtakcHCYJvuJqVYbuJT8I3FOhqOvkbcgHxOgs
                woxPfvGrL6S53H8Er5Do/CPvOM4Tx3ilE+a0GTYVLjKmwltNeN09YWlJAoqG5KMQPZUxRYaNvYPInLzUdGi
                rdjkbSIgZEnrvq5MzaMWexample="
    }, {
      "name": "From",
      "value": "sender@example.com"
    }, {
      "name": "To",
      "value": "recipient@example.com"
    }, {
      "name": "Subject",
      "value": "Amazon SES Test"
    }, {
      "name": "MIME-Version",
      "value": "1.0"
    }, {
      "name": "Content-Type",
      "value": "multipart/alternative;  boundary=\"----=_Part_869787_396523212.15677example\""
    }, {
      "name": "Message-ID",
      "value": "<0100016d07eb7477-8e1938ce-475e-4e4b-89cb-example-000000@email.amazonses.com>"
    }, {
      "name": "Date",
      "value": "Fri, 6 Sep 2019 18:52:14 +0000"
    }, {
      "name": "X-SES-Outgoing",
      "value": "2019.09.06-203.0.113.0"
    }, {
      "name": "Feedback-ID",
      "value": "1.us-east-1.ZitRoTk0xziun8WEJevt+cSJ17QNuCwulg2D2v3nrT0=:AmazonSES"
    }],
    "commonHeaders": {
      "returnPath": "0100016d07eb7477-8e1938ce-475e-4e4b-89cb-example-000000@amazonses.com",
      "from": ["sender@example.com"],
      "date": "Fri, 6 Sep 2019 18:52:14 +0000",
      "to": ["recipient@example.com"],
      "messageId": "<0100016d07eb7477-8e1938ce-475e-4e4b-89cb-example-000000@email.amazonses.com>",
      "subject": "Amazon SES Test"
    }
  },
  "receipt": {
    "timestamp": "2019-09-06T18:52:14.965Z",
    "processingTimeMillis": 1098,
    "recipients": ["recipient@example.com"],
    "spamVerdict": {
      "status": "PASS"
    },
    "virusVerdict": {
      "status": "PASS"
    },
    "spfVerdict": {
      "status": "PASS"
    },
    "dkimVerdict": {
      "status": "GRAY"
    },
    "dmarcVerdict": {
      "status": "GRAY"
    },
    "action": {
      "type": "SNS",
      "topicArn": "arn:aws:sns:us-east-1:123456789012:IncomingEmail",
      "encoding": "BASE64"
    }
  },
  "content": "UmV0dXJuLVBhdGg6IDwwMTAwMDE2ZDA3ZWI3NDc3LThlMTkzOGNlLTQ3NWUtNGU0Yi04OWNiLWV4YW1wbGUtM
              DAwMDAwQGFtYXpvbnNlcy5jb20+ClJlY2VpdmVkOiBmcm9tIGExLTIzLnNtdHAtb3V0LmFtYXpvbnNlcy5jb2
              0gKGExLTIzLnNtdHAtb3V0LmFtYXpvbnNlcy5jb20gWzIwMy4wLjExMy4wXSkKIGJ5IGluYm91bmQtc210cC5
              1cy1lYXN0LTEuYW1hem9uYXdzLmNvbSB3aXRoIFNNVFAgaWQgZW5xMTBpYW1lMXFjdTMxamg1ZGEyZ244OWlt
              dm90Mms2ZXhhbXBsZQogZm9yIHJlY2lwaWVudEBleGFtcGxlLmNvbTsKIEZyaSwgMDYgU2VwIDIwMTkgMTg6N
              TI6MTQgKzAwMDAgKFVUQykKWC1TRVMtU3BhbS1WZXJkaWN0OiBQQVNTClgtU0VTLVZpcnVzLVZlcmRpY3Q6IF
              BBU1MKUmVjZWl2ZWQtU1BGOiBwYXNzIChzcGZDaGVjazogZG9tYWluIG9mIGFtYXpvbnNlcy5jb20gZGVzaWd
              uYXRlcyAyMDMuMC4xMTMuMCBhcyBwZXJtaXR0ZWQgc2VuZGVyKSBjbGllbnQtaXA9MjAzLjAuMTEzLjA7IGVu
              dmVsb3BlLWZyb209MDEwMDAxNmQwN2ViNzQ3Ny04ZTE5MzhjZS00NzVlLTRlNGItODljYi1leGFtcGxlLTAwM
              DAwMEBhbWF6b25zZXMuY29tOyBoZWxvPWExLTIzLnNtdHAtb3V0LmFtYXpvbnNlcy5jb207CkF1dGhlbnRpY2
              F0aW9uLVJlc3VsdHM6IGFtYXpvbnNlcy5jb207CiBzcGY9cGFzcyAoc3BmQ2hlY2s6IGRvbWFpbiBvZiBhbWF
              6b25zZXMuY29tIGRlc2lnbmF0ZXMgMjAzLjAuMTEzLjAgYXMgcGVybWl0dGVkIHNlbmRlcikgY2xpZW50LWlw
              PTIwMy4wLjExMy4wOyBlbnZlbG9wZS1mcm9tPTAxMDAwMTZkMDdlYjc0NzctOGUxOTM4Y2UtNDc1ZS00ZTRiL
              Tg5Y2ItZXhhbXBsZS0wMDAwMDBAYW1hem9uc2VzLmNvbTsgaGVsbz1hMS0yMy5zbXRwLW91dC5hbWF6b25zZX
              MuY29tOwogZGtpbT1wYXNzIGhlYWRlci5pPUBhbWF6b25zZXMuY29tOwogZG1hcmM9bm9uZSBoZWFkZXIuZnJ
              vbT1leGFtcGxlLmNvbTsKWC1TRVMtUkVDRUlQVDogQUVGQlFVRkJRVUZCUVVGRlFreDBRVUpaWkVORVhBTVBM
              RT0KWC1TRVMtREtJTS1TSUdOQVRVUkU6IGE9cnNhLXNoYTI1NjsgcT1kbnMvdHh0OyBiPWQ1YXp3Z0EyaUJxQ
              WpBNE5CbTFBUnpqSjk1cmFSbXk0Rzg0aVZkZDN4Mkp6U0hlVW5RdVR1TG1KQXFScllZM1dwTUlWUkZ5MDFoSV
              RhZ3VDVmpVUFdCUjB4RjZmQ0VYSDg1Y2YzUk5lRlF5TGZXWnFvWEtmQmRqRlJWKzEzdHJvRHRlckgyTXhCVUw
              4cmp6Y3ZkSGV0bDBJbXdsYUsyUEdtZVBUZXhhbXBsZT07IGM9cmVsYXhlZC9zaW1wbGU7IHM9RVhBTVBMRTdj
              MTkxYmU0NS1lOWFlZGI5YS0wMmY5LTRkMTItYTg3ZC1kZDAwOTlhMDdmOGEtMDAwMDAwOyBkPWFtYXpvbnNlc
              y5jb207IHQ9MTU2Nzc5NTkzNTsgdj0xOyBiaD1DWjFTZ2hzWWFBNlNTQ2JpdHpzTElTZUZvTmxwZHRIMVB5aW
              V4YW1wbGU9OyBoPUZyb206VG86Q2M6QmNjOlN1YmplY3Q6RGF0ZTpNZXNzYWdlLUlEOk1JTUUtVmVyc2lvbjp
              Db250ZW50LVR5cGU6WC1TRVMtUkVDRUlQVDsKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBx
              PWRucy90eHQ7IGM9cmVsYXhlZC9zaW1wbGU7CglzPUVYQU1QTEU3YzE5MWJlNDUtZTlhZWRiOWEtMDJmOS00Z
              DEyLWE4N2QtZGQwMDk5YTA3ZjhhLTAwMDAwMDsgZD1hbWF6b25zZXMuY29tOyB0PTE1Njc3OTU5MzQ7CgloPU
              Zyb206VG86U3ViamVjdDpNSU1FLVZlcnNpb246Q29udGVudC1UeXBlOk1lc3NhZ2UtSUQ6RGF0ZTpGZWVkYmF
              jay1JRDsKCWJoPUNaMVNnaHNZYUE2U1NDYml0enNMSVNlRm9ObHBkdEgxUHlpTWV4YW1wbGU9OwoJYj1leGFt
              cGxlPQpGcm9tOiBzZW5kZXJAZXhhbXBsZS5jb20KVG86IHJlY2lwaWVudEBleGFtcGxlLmNvbQpTdWJqZWN0O
              iBBbWF6b24gU0VTIFRlc3QKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZX
              JuYXRpdmU7IAoJYm91bmRhcnk9Ii0tLS09X1BhcnRfODY5Nzg3XzM5NjUyMzIxMi4xNTY3N2V4YW1wbGUiCk1
              lc3NhZ2UtSUQ6IDwwMTAwMDE2ZDA3ZWI3NDc3LThlMTkzOGNlLTQ3NWUtNGU0Yi04OWNiLWV4YW1wbGUtMDAw
              MDAwQGVtYWlsLmFtYXpvbnNlcy5jb20+CkRhdGU6IEZyaSwgNiBTZXAgMjAxOSAxODo1MjoxNCArMDAwMApYL
              VNFUy1PdXRnb2luZzogMjAxOS4wOS4wNi0yMDMuMC4xMTMuMApGZWVkYmFjay1JRDogMS51cy1lYXN0LTEuWm
              l0Um9UazB4eml1bjhXRUpldnQrZXhhbXBsZT06QW1hem9uU0VTCgotLS0tLS09X1BhcnRfODY5Nzg3XzM5NjU
              yMzIxMi4xNTY3N2V4YW1wbGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl
              bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKCkFtYXpvbiBTRVMgVGVzdApUaGlzIGVtYWlsIHdhcyBzZW50I
              HdpdGggQW1hem9uIFNFUy4KLS0tLS0tPV9QYXJ0Xzg2OTc4N18zOTY1MjMyMTIuMTU2NzdleGFtcGxlCkNvbn
              RlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDd
              iaXQKCjxodG1sPgo8aGVhZD48L2hlYWQ+Cjxib2R5PgogIDxoMT5BbWF6b24gU0VTIFRlc3Q8L2gxPgogIDxw
              PlRoaXMgZW1haWwgd2FzIHNlbnQgd2l0aCBBbWF6b24gU0VTLjwvcD4KPGltZyBhbHQ9IiIgc3JjPSJodHRwO
              i8vZXhhbXBsZS5yLnVzLWVhc3QtMS5hd3N0cmFjay5tZS9JMC8wMTAwMDE2ZDA3ZWI3NDc3LThlMTkzOGNlLT
              Q3NWUtNGU0Yi04OWNiLWV4YW1wbGUtMDAwMDAwL3UtWUphaHRkTTJTclhZQ2QiIHN0eWxlPSJkaXNwbGF5OiB
              ub25lOyB3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsiPgo8L2JvZHk+CjwvaHRtbD4KICAgICAgICAgICAgCi0t
              LS0tLT1fUGFydF84Njk3ODdfMzk2NTIzMjEyLjE1Njc3ZXhhbXBsZS0tCg=="
}
```

# 使用案例範例
<a name="receiving-email-action-lambda-example-use-cases"></a>

以下範例概述部分可設定的規則，以使用 Lambda 函數結果來控制郵件流程。為達示範目的，許多範例皆使用 S3 動作做為結果。

## 使用案例 1：捨棄所有網域上的垃圾郵件
<a name="receiving-email-action-lambda-example-use-cases-1"></a>

此範例採用全域規則，將捨棄所有網域上的垃圾郵件。包含規則 2 和 3，以示範在所有網域上捨棄垃圾郵件後可針對網域套用規則。

### 規則 1
<a name="receiving-email-action-lambda-example-use-cases-1-rule-1"></a>

*收件人名單：*空白。因此，此規則將套用到所有已驗證網域下的所有收件人。

 *動作* 

1. Lambda 動作 (同步) 將於電子郵件為垃圾郵件時傳回 `STOP_RULE_SET`。否則會傳回 `CONTINUE`。請參閱「[Lambda 函數範例](receiving-email-action-lambda-example-functions.md)」中關於捨棄垃圾郵件的 Lambda 函數範例。

### 規則 2
<a name="receiving-email-action-lambda-example-use-cases-1-rule-2"></a>

*收件人名單：*example1.com

 *動作* 

1. 任何動作。

### 規則 3
<a name="receiving-email-action-lambda-example-use-cases-1-rule-3"></a>

*收件人名單：*example2.com

 *動作* 

1. 任何動作。

## 使用案例 2：退回所有網域上的垃圾郵件
<a name="receiving-email-action-lambda-example-use-cases-2"></a>

此範例採用全域規則，將退回所有網域上的垃圾郵件。包含規則 2 和 3，以示範在所有網域上退回垃圾郵件後可針對網域套用規則。

### 規則 1
<a name="receiving-email-action-lambda-example-use-cases-2-rule-1"></a>

*收件人名單：*空白。因此，此規則將套用到所有已驗證網域下的所有收件人。

 *動作* 

1. Lambda 動作 (同步) 將於電子郵件為垃圾郵件時傳回 `CONTINUE`。否則會傳回 `STOP_RULE`。

1. 退信動作 (「500 5.6.1。Message content rejected (訊息內容遭拒)」)。

1. 停止動作。

### 規則 2
<a name="receiving-email-action-lambda-example-use-cases-2-rule-2"></a>

*收件人名單：*example1.com

 *動作* 

1. 任何動作

### 規則 3
<a name="receiving-email-action-lambda-example-use-cases-2-rule-3"></a>

*收件人名單：*example2.com

 *動作* 

1. 任何動作

## 使用案例 3：套用最明確的規則
<a name="receiving-email-action-lambda-example-use-cases-3"></a>

此範例示範如何使用停止動作，以防止電子郵件經多個規則處理。在這個範例中，特定地址將適用一個規則，而另一個規則適用於網域下所有電子郵件地址。使用「停止」動作，符合特定電子郵件地址規則的訊息將不會由該網域所套用之較一般性的規則處理。

### 規則 1
<a name="receiving-email-action-lambda-example-use-cases-3-rule-1"></a>

*收件人名單：*user@example.com

 *動作* 

1. Lambda 動作 (非同步)。

1. 停止動作。

### 規則 2
<a name="receiving-email-action-lambda-example-use-cases-3-rule-2"></a>

*收件人名單：*example.com

 *動作* 

1. 任何動作。

## 使用案例 4：將郵件事件記錄到 CloudWatch
<a name="receiving-email-action-lambda-example-use-cases-4"></a>

此範例示範如何在將郵件儲存至 Amazon SES 前，保留往返系統之所有郵件的稽核記錄。

### 規則 1
<a name="receiving-email-action-lambda-example-use-cases-4-rule-1"></a>

*收件人名單：*example.com

 *動作* 

1. Lambda 動作 (非同步)，會將事件物件寫入 CloudWatch 記錄。[Lambda 函數範例](receiving-email-action-lambda-example-functions.md) 中記錄至 CloudWatch的 Lambda 函數範例。

1. S3 動作。

## 使用案例 5：捨棄未通過 DKIM 的郵件
<a name="receiving-email-action-lambda-example-use-cases-5"></a>

此範例示範如何將所有傳入的電子郵件儲存至 Amazon S3 儲存貯體，但是只有送往特定電子郵件地址並已通過 DKIM 的電子郵件，才可傳送至您的自動化電子郵件應用程式。

### 規則 1
<a name="receiving-email-action-lambda-example-use-cases-5-rule-1"></a>

*收件人名單：*example.com

 *動作* 

1. S3 動作。

1. Lambda 動作 (同步) 將在訊息未通過 DKIM 時傳回 `STOP_RULE_SET`。否則會傳回 `CONTINUE`。

### 規則 2
<a name="receiving-email-action-lambda-example-use-cases-5-rule-2"></a>

*收件人名單：*support@example.com

 *動作* 

1. 觸發自動化應用程式的 Lambda 動作 (非同步)。

## 使用案例 6：根據主旨行篩選郵件
<a name="receiving-email-action-lambda-example-use-cases-6"></a>

此範例示範如何捨棄網域中所有主旨行包含字詞「折扣」的傳入郵件，接著以一種方法處理用於自動化系統的郵件，並以不同方法來處理寄送給網域中所有其他收件人的郵件。

### 規則 1
<a name="receiving-email-action-lambda-example-use-cases-6-rule-1"></a>

*收件人名單：*example.com

 *動作* 

1. Lambda 動作 (同步) 會在主旨行包含字詞「折扣」時傳回 `STOP_RULE_SET`。否則會傳回 `CONTINUE`。

### 規則 2
<a name="receiving-email-action-lambda-example-use-cases-6-rule-2"></a>

*收件人名單：*support@example.com

 *動作* 

1. 使用儲存貯體 1 的 S3 動作。

1. 觸發自動化應用程式的 Lambda 動作 (非同步)。

1. 停止動作。

### 規則 3
<a name="receiving-email-action-lambda-example-use-cases-6-rule-3"></a>

*收件人名單：*example.com

 *動作* 

1. 使用儲存貯體 2 的 S3 動作。

1. 處理網域其他部分的電子郵件的 Lambda 動作 (非同步)。

# Lambda 函數範例
<a name="receiving-email-action-lambda-example-functions"></a>

此主題包含可控制郵件流程的 Lambda 函數範例。

## 範例 1：捨棄垃圾郵件
<a name="receiving-email-action-lambda-example-functions-1"></a>

此範例會停止處理至少包含一項垃圾郵件指標的訊息。

```
export const handler = async (event, context, callback) => {
    console.log('Spam filter');
    
    const sesNotification = event.Records[0].ses;
    console.log("SES Notification:\n", JSON.stringify(sesNotification, null, 2));
    
    // Check if any spam check failed
    if (sesNotification.receipt.spfVerdict.status === 'FAIL'
            || sesNotification.receipt.dkimVerdict.status === 'FAIL'
            || sesNotification.receipt.spamVerdict.status === 'FAIL'
            || sesNotification.receipt.virusVerdict.status === 'FAIL') {
                
        console.log('Dropping spam');

        // Stop processing rule set, dropping message
        callback(null, {'disposition':'STOP_RULE_SET'});
    } else {
        callback(null, {'disposition':'CONTINUE'});   
    }
};
```

## 範例 2：若找到特定標頭則繼續
<a name="receiving-email-action-lambda-example-functions-2"></a>

此範例將在電子郵件包含特定標題值時僅繼續處理目前規則。

```
export const handler = async (event, context, callback) => {
    console.log('Header matcher');
 
    const sesNotification = event.Records[0].ses;
    console.log("SES Notification:\n", JSON.stringify(sesNotification, null, 2));
    
    // Iterate over the headers
    for (let index in sesNotification.mail.headers) {
        const header = sesNotification.mail.headers[index];
        
        // Examine the header values
        if (header.name === 'X-Header' && header.value === 'X-Value') {
            console.log('Found header with value.');
            callback(null, {'disposition':'CONTINUE'});
            return;
        }
    }
    
    // Stop processing the rule if the header value wasn't found
    callback(null, {'disposition':'STOP_RULE'});
};
```

## 範例 3：從 Amazon S3 擷取電子郵件
<a name="receiving-email-action-lambda-example-functions-3"></a>

此範例從 Amazon S3 取得電子郵件原始碼和處理其內容。

**注意**  
必須先使用 S3 動作來將電子郵件寫入 Amazon S3。
確保 Lambda 函數具有從 S3 儲存貯體擷取物件的 IAM 許可 - 如需詳細資訊，請參閱此 [AWS re：Post 文章](https://repost.aws/knowledge-center/lambda-execution-role-s3-bucket)。
預設 Lambda 執行逾時可能對您的工作流程太短，請考慮增加它們。

```
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3"; 
const bucketName = '<Your Bucket Name>';

export const handler = async (event, context, callback) => {
    const client = new S3Client();
    console.log('Process email');
  
    var sesNotification = event.Records[0].ses;
    console.log("SES Notification:\n", JSON.stringify(sesNotification, null, 2));
    console.log("MessageId: " + sesNotification.mail.messageId)
  
    const getObjectCommand = new GetObjectCommand({
        Bucket: bucketName,
        Key: sesNotification.mail.messageId
    });
  
    try {
        const response = await client.send(getObjectCommand);
        const receivedMail = await response.Body.transformToString();
        console.log(receivedMail);
        callback(null, {'disposition':'CONTINUE'})
    } catch (e) {
        // Perform error handling here
        console.log("Encountered S3 client error: "+ e, e.stack);
        callback(null, {'disposition':'STOP_RULE_SET'})
    }
};
```

## 範例 4：DMARC 身分驗證失敗的退信訊息
<a name="receiving-email-action-lambda-example-functions-4"></a>

如果傳入的電子郵件未通過 DMARC 身分驗證，此範例將傳送退信訊息。

**注意**  
當您使用這個範例中，將 `emailDomain` 環境變數設定為您的電子郵件接收網域。
確保 Lambda 函數具有傳送退信訊息之 SES 身分的`ses:SendBounce`許可。

```
import { SESClient, SendBounceCommand } from "@aws-sdk/client-ses";
const sesClient = new SESClient();
// Assign the emailDomain environment variable to a constant.
const emailDomain = process.env.emailDomain;

export const handler = async (event, context, callback) => {
    console.log('Spam filter starting');

    const sesNotification = event.Records[0].ses;
    const messageId = sesNotification.mail.messageId;
    const receipt = sesNotification.receipt;

    console.log('Processing message:', messageId);

    // If DMARC verdict is FAIL and the sending domain's policy is REJECT
    // (p=reject), bounce the email.
    if (receipt.dmarcVerdict.status === 'FAIL' 
        && receipt.dmarcPolicy.status === 'REJECT') {
        // The values that make up the body of the bounce message.
        const sendBounceParams = {
            BounceSender: `mailer-daemon@${emailDomain}`,
            OriginalMessageId: messageId,
            MessageDsn: {
                ReportingMta: `dns; ${emailDomain}`,
                ArrivalDate: new Date(),
                ExtensionFields: [],
            },
            // Include custom text explaining why the email was bounced.
            Explanation: "Unauthenticated email is not accepted due to the sending domain's DMARC policy.",
            BouncedRecipientInfoList: receipt.recipients.map((recipient) => ({
                Recipient: recipient,
                // Bounce with 550 5.6.1 Message content rejected
                BounceType: 'ContentRejected',
            })),
        };

        console.log('Bouncing message with parameters:');
        console.log(JSON.stringify(sendBounceParams, null, 2));
        
        const sendBounceCommand = new SendBounceCommand(sendBounceParams);
        
        // Try to send the bounce. 
        try {
          const response = await sesClient.send(sendBounceCommand);
          console.log(response);
          console.log(`Bounce for message ${messageId} sent, bounce message ID: ${response.MessageId}`);
          // Stop processing additional receipt rules in the rule set.
          callback(null, {disposition: 'STOP_RULE_SET'});
        } catch (e) {
          // If something goes wrong, log the issue.
          console.log(`An error occurred while sending bounce for message: ${messageId}`, e);
          // Perform any additional error handling here
          callback(e)
        }
        
    // If the DMARC verdict is anything else (PASS, QUARANTINE or GRAY), accept
    // the message and process remaining receipt rules in the rule set.
    } else {
        console.log('Accepting message:', messageId);
        callback(null, {disposition: 'CONTINUE'});
    }
};
```

# 傳送至 S3 儲存貯體動作
<a name="receiving-email-action-s3"></a>

**交付至 S3 儲存貯體**動作會將郵件交付至 S3 儲存貯體，並可選擇性地透過 SNS 等方式通知您。此動作有下列選項。
+ **S3 儲存貯**體 – 儲存接收電子郵件的 S3 儲存貯體名稱。您也可以選擇建立 S3 儲存貯體，在設定動作時**建立新的 S3 儲存貯體**。Amazon SES 提供您原始、未修改的電子郵件，通常是以多用途網際網路郵件延伸 (MIME) 格式顯示。如需 MIME 格式的詳細資訊，請參閱 [RFC 2045](https://tools.ietf.org/html/rfc2045)。
**重要**  
Amazon S3 儲存貯體必須存在於[電子郵件接收](regions.md#region-receive-email)可使用 SES 的區域；否則，您必須使用下方說明的 IAM 角色選項。
當您將電子郵件儲存至 S3 儲存貯體時，預設的電子郵件大小上限 （包括標頭） 為 40 MB。
SES 不支援上傳到已啟用物件鎖定且已設定預設保留期的 S3 儲存貯體的接收規則。
如果指定自己的 KMS 金鑰來為 S3 儲存貯體加密，請確保使用完整合格的 KMS 金鑰 ARN，而不是 KMS 金鑰別名；使用別名可能會導致系統使用屬於申請者 (而不是儲存貯體管理員) 的 KMS 金鑰來加密資料。請參閱[對跨帳戶操作使用加密](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html#bucket-encryption-update-bucket-policy)。
+ **物件金鑰字首** – 要在 S3 儲存貯體中使用的選用金鑰名稱字首。金鑰名稱字首可讓您在資料夾結構中組織 S3 儲存貯體。例如，如果您使用*電子郵件*做為**物件金鑰字首**，您的電子郵件會出現在名為 *Email* 的資料夾中的 S3 儲存貯體中。
+ **訊息加密** – 將收到的電子郵件訊息交付至 S3 儲存貯體之前，用來加密這些訊息的選項。
+ **KMS 加密金鑰** – （如果選取*訊息加密*，則可用。) SES 在將電子郵件儲存至 S3 儲存貯體之前，應該用來加密電子郵件的 AWS KMS 金鑰。您可以使用預設 KMS 金鑰或您在 KMS 中建立的客戶受管金鑰。
**注意**  
您選擇的 KMS 金鑰必須與您用來接收電子郵件的 SES 端點位於相同的 AWS 區域。
  + 若要使用預設 KMS 金鑰，請在 SES 主控台中設定接收規則時選擇 **aws/ses**。如果您使用 SES API，您可以透過提供 形式的 ARN 來指定預設 KMS 金鑰`arn:aws:kms:REGION:AWSACCOUNTID:alias/aws/ses`。例如，如果 AWS 您的帳戶 ID 為 123456789012，而您想要在 us-east-1 區域中使用預設 KMS 金鑰，則預設 KMS 金鑰的 ARN 會是 `arn:aws:kms:us-east-1:123456789012:alias/aws/ses`。如果您使用預設 KMS 金鑰，則不需要執行任何額外步驟來授予 SES 使用金鑰的許可。
  + 若要使用您在 KMS 中建立的客戶受管金鑰，請提供 KMS 金鑰的 ARN，並確保將陳述式新增至金鑰的政策，以授予 SES 使用它的許可。如需提供權限的詳細資訊，請參閱 [給予 Amazon SES 接收電子郵件的許可](receiving-email-permissions.md)。

  如需搭配 SES 使用 KMS 的詳細資訊，請參閱 [AWS Key Management Service 開發人員指南](https://docs.aws.amazon.com/kms/latest/developerguide/services-ses.html)。如果您未在主控台或 API 中指定 KMS 金鑰，SES 將不會加密您的電子郵件。
**重要**  
在將郵件提交至 S3 進行儲存之前，SES 會使用 S3 加密用戶端來加密您的郵件。 S3 它不會使用 S3 伺服器端加密進行加密。這表示從 S3 擷取電子郵件之後，您必須使用 S3 加密用戶端來解密電子郵件，因為服務無法存取您的 KMS 金鑰進行解密。此加密用戶端提供 [適用於 Java 的 AWS SDK](https://aws.amazon.com/sdk-for-java/) 和 [適用於 Ruby 的 AWS SDK](https://aws.amazon.com/sdk-for-ruby/) 版本。如需詳細資訊，請參閱 [Amazon Simple Storage Service 使用者指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html)。
+ **IAM 角色** – SES 用來存取*交付至 S3* 動作 (Amazon S3 儲存貯體、SNS 主題和 KMS 金鑰） 中資源的 IAM 角色。如果未提供，您將需要明確授予 SES 個別存取每個資源的許可，請參閱 [給予 Amazon SES 接收電子郵件的許可](receiving-email-permissions.md)。

  如果您想要寫入存在於無法使用 SES *電子郵件接收*的區域中的 S3 儲存貯體，您必須使用具有寫入 S3 許可政策的 IAM 角色作為角色的內嵌政策。您可以直接從主控台套用此動作的許可政策：

  1. 在 **IAM ****角色**欄位中選擇建立新角色，然後輸入名稱，後面接著**建立角色**。（此角色的 IAM 信任政策會自動在背景產生。)

  1. 由於 IAM 信任政策是自動產生的，您只需將動作的許可政策新增至角色 - 選取 IAM 角色欄位下的**檢視**角色以開啟 IAM 主控台。 ****

  1. 在**許可**索引標籤下，選擇**新增許可**，然後選取**建立內嵌政策**。

  1. 在**指定許可**頁面上，選取**政策編輯器**中的 **JSON**。

  1. 將許可政策從 複製並貼[S3 動作的 IAM 角色許可](receiving-email-permissions.md#receiving-email-permissions-s3-iam-role)到**政策編輯器**中，並以您自己的紅色文字取代資料。（請務必刪除編輯器中的任何範例程式碼。)

  1. 選擇**下一步**。

  1. 選擇建立政策，以檢閱並建立 IAM 角色的許可**政策**。

  1. 選取瀏覽器的索引標籤，在其中開啟 SES **Create rule**–**Add action** page，然後繼續建立規則的其餘步驟。
+ **SNS 主題** – 電子郵件儲存至 S3 儲存貯體時要通知的 Amazon SNS 主題名稱或 ARN。SNS 主題 ARN 的範例為 *arn：aws：sns：us-east-1：123456789012：MyTopic*。您也可以選擇建立 SNS 主題，在設定動作時**建立 SNS 主題**。如需 SNS 主題的詳細資訊，請參閱《[Amazon Simple Notification Service 開發人員指南](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)》。
**注意**  
您選擇的 SNS 主題必須與您用來接收電子郵件的 SES 端點位於相同的 AWS 區域。
僅使用*客戶受*管 KMS 金鑰加密搭配與 SES 接收規則相關聯的 SNS 主題，因為您必須編輯 KMS 金鑰政策，才能允許 SES 發佈至 SNS。這與設計無法編輯的*AWS 受管* KMS 金鑰政策相反。

# 發佈至 Amazon SNS 主題動作
<a name="receiving-email-action-sns"></a>

**SNS** 動作使用 Amazon SNS 通知來發佈郵件。通知包含完整的電子郵件內容。此動作有下列選項。
+ **SNS Topic (SNS 主題)** - Amazon SNS 主題的名稱或 ARN，用於發佈電子郵件。Amazon SNS 通知提供您原始、未修改的電子郵件副本，通常是以多用途網際網路郵件延伸 (MIME) 格式顯示。如需 MIME 格式的詳細資訊，請參閱 [RFC 2045](https://tools.ietf.org/html/rfc2045)。
**重要**  
當您選擇透過 Amazon SNS 通知來接收電子郵件時，電子郵件大小上限 (包含標頭) 為 150 KB。大於此規定的電子郵件將被退信。如果您預期電子郵件大於此上限，請將電子郵件儲存到 Amazon S3 儲存貯體。

  Amazon SNS 主題 ARN 的範例為 *arn:aws:sns:us-east-1:123456789012:MyTopic*。選擇 **Create SNS Topic** (建立 SNS 主題) 來設定動作時，也可以建立 Amazon SNS 主題。如需 Amazon SNS 主題的詳細資訊，請參閱 [Amazon Simple Notification Service 開發人員指南](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)。
**注意**  
您選擇的 Amazon SNS 主題必須與您用來接收電子郵件的 Amazon SES 端點位於相同的 AWS 區域。
僅使用*客戶受*管 KMS 金鑰加密搭配與 SES 接收規則相關聯的 SNS 主題，因為您必須編輯 KMS 金鑰政策，才能允許 SES 發佈至 SNS。這與設計無法編輯的*AWS 受管* KMS 金鑰政策相反。
+ **Encoding (編碼) - **用於 Amazon SNS 通知內電子郵件的編碼。UTF-8 較易於使用，但是當訊息以不同的編碼格式完成編碼時，可能無法保留所有特殊字元。Base64 會保留所有特殊字元。如需 UTF-8 和 Base64 的資訊，請分別參閱 [RFC 3629](https://tools.ietf.org/html/rfc3629) 和 [RFC 4648](https://tools.ietf.org/html/rfc4648)。

當您收到電子郵件時，Amazon SES 會執行作用中接收規則集中的規則。您可以設定接收規則來使用 Amazon SNS 傳送通知給自己。您的接收規則可以傳送兩種不同類型的通知：
+ **自 SNS 動作傳送的通知** - 將 [SNS](#receiving-email-action-sns) 動作新增至接收規則時，系統會傳送關於電子郵件的資訊以及電子郵件的內容。如果訊息為 150 KB 或較小，此通知類型也包含完整的電子郵件 MIME 本文。
+ **自其他動作類型傳送的通知** - 將任何其他動作類型 (包括 [退信](receiving-email-action-bounce.md)、[Lambda](receiving-email-action-lambda.md)、[停止規則集](receiving-email-action-stop.md)、或者 [WorkMail](receiving-email-action-workmail.md) 動作) 新增至規則集時，您可以選擇是否指定 Amazon SNS 主題。若您這麼做，將會在這些動作執行時收到通知。這些通知包含關於電子郵件的資訊，但不會包含電子郵件的內容。

**Topics**
+ [用於 Amazon SES 電子郵件接收的通知內容](receiving-email-notifications-contents.md)
+ [Amazon SES 電子郵件接收通知的範例](receiving-email-notifications-examples.md)

# 用於 Amazon SES 電子郵件接收的通知內容
<a name="receiving-email-notifications-contents"></a>

所有電子郵件接收的通知，都會以 JavaScript 物件標記法 (JSON) 格式發佈到 Amazon Simple Notification Service (Amazon SNS) 主題。

如需範例通知，請參閱 [通知範例](receiving-email-notifications-examples.md)。

**Contents**
+ [最上層 JSON 物件](#receiving-email-notifications-contents-top-level-json-object)
+ [接收物件](#receiving-email-notifications-contents-receipt-object)
  + [動作物件](#receiving-email-notifications-contents-action-object)
  + [dkimVerdict 物件](#receiving-email-notifications-contents-dkimverdict-object)
  + [dmarcVerdict 物件](#receiving-email-notifications-contents-dmarcverdict-object)
  + [spamVerdict 物件](#receiving-email-notifications-contents-spamverdict-object)
  + [spfVerdict 物件](#receiving-email-notifications-contents-spfverdict-object)
  + [virusVerdict 物件](#receiving-email-notifications-contents-virusverdict-object)
+ [郵件物件](#receiving-email-notifications-contents-mail-object)
  + [commonHeaders 物件](#receiving-email-notifications-contents-mail-object-commonHeaders)

## 最上層 JSON 物件
<a name="receiving-email-notifications-contents-top-level-json-object"></a>

最上層 JSON 物件包含下列欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  notificationType  |  通知類型。針對這一類通知，值一律為 `Received`。  | 
|  [`receipt`](#receiving-email-notifications-contents-receipt-object)  |  包含有關電子郵件傳遞資訊的物件。  | 
|  [`mail`](#receiving-email-notifications-contents-mail-object)  |  包含與通知建立關聯之電子郵件資訊的物件。  | 
|  content  |  包含原始、未修改的電子郵件之字串，通常是以多用途網際網路郵件延伸 (MIME) 格式顯示。如需 MIME 格式的詳細資訊，請參閱 [RFC 2045](https://tools.ietf.org/html/rfc2045)。  此欄位只有在通知由 SNS 動作觸發時才會顯示。由所有其他動作觸發的通知不會包含此欄位。   | 

## 接收物件
<a name="receiving-email-notifications-contents-receipt-object"></a>

`receipt` 物件包含以下欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  [`action`](#receiving-email-notifications-contents-action-object)  |  封裝關於執行的動作之資訊的物件。如需可能值的清單，請參閱 [動作物件](#receiving-email-notifications-contents-action-object)。  | 
|  [`dkimVerdict`](#receiving-email-notifications-contents-dkimverdict-object)  |  指出網域金鑰識別郵件 (DKIM) 檢查是否通過的物件。如需可能值的清單，請參閱 [dkimVerdict 物件](#receiving-email-notifications-contents-dkimverdict-object)。  | 
| dmarcPolicy | 指出傳送網域的網域型訊息驗證、回報與遵循 (DMARC) 設定。訊息未通過 DMARC 驗證時，此欄位才會出現。 此欄位可能的值為：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/receiving-email-notifications-contents.html) | 
| [`dmarcVerdict`](#receiving-email-notifications-contents-dmarcverdict-object) | 指出是否通過網域型訊息驗證、回報與遵循 (DMARC) 檢查之物件。如需可能值的清單，請參閱 [dmarcVerdict 物件](#receiving-email-notifications-contents-dmarcverdict-object)。 | 
|  processingTimeMillis  |  此字串指出從 Amazon SES 收到訊息到觸發動作的期間範圍，單位為毫秒。  | 
|  recipients  |  由作用中[接收規則](receiving-email-receipt-rules-console-walkthrough.md)匹配的收件人 (特別是信封收件人地址)。此處列出的地址可能與 `destination` 中的 [郵件物件](#receiving-email-notifications-contents-mail-object) 欄位列出之地址不同。  | 
|  [`spamVerdict`](#receiving-email-notifications-contents-spamverdict-object)  |  指出訊息是否為垃圾郵件的物件。如需可能值的清單，請參閱 [spamVerdict 物件](#receiving-email-notifications-contents-spamverdict-object)。  | 
|  [`spfVerdict`](#receiving-email-notifications-contents-spfverdict-object)  |  指出寄件者政策架構 (SPF) 檢查是否通過的物件。如需可能值的清單，請參閱 [spfVerdict 物件](#receiving-email-notifications-contents-spfverdict-object)。  | 
|  timestamp  |  此字串以 [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) 格式顯示，指出動作觸發的日期與時間。  | 
|  [virusVerdict](#receiving-email-notifications-contents-virusverdict-object)  |  指出訊息是否包含病毒的物件。如需可能值的清單，請參閱 [virusVerdict 物件](#receiving-email-notifications-contents-virusverdict-object)。  | 

### 動作物件
<a name="receiving-email-notifications-contents-action-object"></a>

`action` 物件包含以下欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  type  |  表示執行的動作類型之字串。可能值為 `S3`、`SNS`、`Bounce`、`Lambda`、`Stop` 以及 `WorkMail`。  | 
|  topicArn  |  此字串中包含 Amazon SNS 主題的 Amazon Resource Name (ARN)，該主題為通知發佈的位置。  | 
|  bucketName  |  此字串中包含 Amazon S3 儲存貯體的名稱，該儲存貯體為訊息發佈的位置。只會為 S3 動作類型顯示。  | 
|  objectKey  |  此字串中包含可唯一識別 Amazon S3 儲存貯體中電子郵件的名稱。這與 `messageId` 中的 [郵件物件](#receiving-email-notifications-contents-mail-object) 相同。只會為 S3 動作類型顯示。  | 
|  smtpReplyCode  |  包含 SMTP 回覆程式碼的字串，如 [RFC 5321](https://tools.ietf.org/html/rfc5321) 中所定義。只會為退信動作類型顯示。  | 
|  statusCode  |  包含 SMTP 強化狀態程式碼的字串，如 [RFC 3463](https://tools.ietf.org/html/rfc3463) 中所定義。只會為退信動作類型顯示。  | 
|  message  |  包含人物的字串 - 可讀文字，包含在退信訊息中。只會為退信動作類型顯示。  | 
|  sender  |  其中包含的遭退信的電子郵件之寄件者電子郵件的地址字串。此為送出退信訊息的地址。只會為退信動作類型顯示。  | 
|  functionArn  |  此字串中包含被觸發的 Lambda 函數之 ARN。只會為 Lambda 動作類型顯示。  | 
|  invocationType  |  此字串中包含 Lambda 函數的叫用類型。可能值為 `RequestResponse` 和 `Event`。只會為 Lambda 動作類型顯示。  | 
|  organizationArn  |  其中包含 Amazon WorkMail 組織 ARN 的字串。只會為 WorkMail 動作類型顯示。  | 

### dkimVerdict 物件
<a name="receiving-email-notifications-contents-dkimverdict-object"></a>

`dkimVerdict` 物件包含以下欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  status  |  包含 DKIM verdict 的字串。可能值為： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/receiving-email-notifications-contents.html)  | 

### dmarcVerdict 物件
<a name="receiving-email-notifications-contents-dmarcverdict-object"></a>

`dmarcVerdict` 物件包含以下欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  status  |  包含 DMARC verdict 的字串。可能值為： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/receiving-email-notifications-contents.html)  | 

### spamVerdict 物件
<a name="receiving-email-notifications-contents-spamverdict-object"></a>

`spamVerdict` 物件包含以下欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  status  |  其中包含垃圾郵件掃描結果的字串。可能值為： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/receiving-email-notifications-contents.html)  | 

### spfVerdict 物件
<a name="receiving-email-notifications-contents-spfverdict-object"></a>

`spfVerdict` 物件包含以下欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  status  |  包含 SPF verdict 的字串。可能值為： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/receiving-email-notifications-contents.html)  | 

### virusVerdict 物件
<a name="receiving-email-notifications-contents-virusverdict-object"></a>

`virusVerdict` 物件包含以下欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|  status  |  其中包含病毒掃描結果的字串。可能值為： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/ses/latest/dg/receiving-email-notifications-contents.html)  | 

## 郵件物件
<a name="receiving-email-notifications-contents-mail-object"></a>

`mail` 物件包含以下欄位。


| 欄位名稱 | Description | 
| --- | --- | 
|   destination  |  來自傳入郵件的 MIME 標題之所有收件人地址的完整清單 (包括「收件人：」與「副本：」收件人)。  | 
|  messageId  |  此字串中包含 Amazon SES 指派給電子郵件的唯一 ID。如果電子郵件是遞送至 Amazon S3，訊息 ID 同時也是用來將訊息寫入 Amazon S3 儲存貯體的 Amazon S3 物件金鑰。  | 
|  source  |  包含寄出電子郵件的電子郵件地址字串 (特別是信封的寄件人地址)。  | 
|  timestamp  |  其中包含收到電子郵件時間的字串，以 ISO8601 格式顯示。  | 
|  headers  |  Amazon SES 標頭和您的自訂標頭。每個標頭包含以下欄位：`name` 和 `value`。  | 
|  [`commonHeaders`](#receiving-email-notifications-contents-mail-object-commonHeaders)  |  所有電子郵件常用的標頭。每個標頭包含以下欄位：`name` 和 `value`。  | 
|  headersTruncated  |  此字串說明通知中的標頭是否被截斷，會在標頭大於 10 KB 時顯示。可能值為 `true` 和 `false`。  | 

### commonHeaders 物件
<a name="receiving-email-notifications-contents-mail-object-commonHeaders"></a>

`commonHeaders` 物件可具有下表所示的欄位。此物件中存在的欄位，取決於傳入電子郵件中存在的欄位。


| 欄位名稱 | Description | 
| --- | --- | 
| messageId | 原始訊息的 ID。 | 
| date | Amazon SES 收到訊息的日期和時間。 | 
| to | 電子郵件的 To 標頭。 | 
| cc | 電子郵件的 CC 標頭。 | 
| bcc | 電子郵件的 BCC 標頭。 | 
| from | 電子郵件的 From 標頭。 | 
| sender | 電子郵件的 Sender 標頭。 | 
| returnPath | 電子郵件的 Return-Path 標頭。 | 
| replyTo | 電子郵件的 Reply-To 標頭。 | 
| subject | 電子郵件的 Subject 標頭。 | 

# Amazon SES 電子郵件接收通知的範例
<a name="receiving-email-notifications-examples"></a>

此章節包含下列類型的通知範例：
+ [因 SNS 動作而傳送的通知。](#receiving-email-notifications-examples-sns-action)
+ [做為其他動作類型結果傳出的通知](#receiving-email-notifications-examples-alert) (*提醒通知*)。

## SNS 動作的通知
<a name="receiving-email-notifications-examples-sns-action"></a>

本節包含 SNS 動作通知的範例。與之前顯示的提醒通知不同，此通知包含內有電子郵件的 `content` 部分，通常是多用途網際網路郵件延伸 (MIME) 格式。

```
{
  "notificationType":"Received",
  "receipt":{
    "timestamp":"2015-09-11T20:32:33.936Z",
    "processingTimeMillis":222,
    "recipients":[
      "recipient@example.com"
    ],
    "spamVerdict":{
      "status":"PASS"
    },
    "virusVerdict":{
      "status":"PASS"
    },
    "spfVerdict":{
      "status":"PASS"
    },
    "dkimVerdict":{
      "status":"PASS"
    },
    "action":{
      "type":"SNS",
      "topicArn":"arn:aws:sns:us-east-1:012345678912:example-topic"
    }
  },
  "mail":{
    "timestamp":"2015-09-11T20:32:33.936Z",
    "source":"61967230-7A45-4A9D-BEC9-87CBCF2211C9@example.com",
    "messageId":"d6iitobk75ur44p8kdnnp7g2n800",
    "destination":[
      "recipient@example.com"
    ],
    "headersTruncated":false,
    "headers":[
      {
        "name":"Return-Path",
        "value":"<0000014fbe1c09cf-7cb9f704-7531-4e53-89a1-5fa9744f5eb6-000000@amazonses.com>"
      },
      {
        "name":"Received",
        "value":"from a9-183.smtp-out.amazonses.com (a9-183.smtp-out.amazonses.com [54.240.9.183]) by inbound-smtp.us-east-1.amazonaws.com with SMTP id d6iitobk75ur44p8kdnnp7g2n800 for recipient@example.com; Fri, 11 Sep 2015 20:32:33 +0000 (UTC)"
      },
      {
        "name":"DKIM-Signature",
        "value":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1442003552; h=From:To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Date:Message-ID:Feedback-ID; bh=DWr3IOmYWoXCA9ARqGC/UaODfghffiwFNRIb2Mckyt4=; b=p4ukUDSFqhqiub+zPR0DW1kp7oJZakrzupr6LBe6sUuvqpBkig56UzUwc29rFbJF hlX3Ov7DeYVNoN38stqwsF8ivcajXpQsXRC1cW9z8x875J041rClAjV7EGbLmudVpPX 4hHst1XPyX5wmgdHIhmUuh8oZKpVqGi6bHGzzf7g="
      },
      {
        "name":"From",
        "value":"sender@example.com"
      },
      {
        "name":"To",
        "value":"recipient@example.com"
      },
      {
        "name":"Subject",
        "value":"Example subject"
      },
      {
        "name":"MIME-Version",
        "value":"1.0"
      },
      {
        "name":"Content-Type",
        "value":"text/plain; charset=UTF-8"
      },
      {
        "name":"Content-Transfer-Encoding",
        "value":"7bit"
      },
      {
        "name":"Date",
        "value":"Fri, 11 Sep 2015 20:32:32 +0000"
      },
      {
        "name":"Message-ID",
        "value":"<61967230-7A45-4A9D-BEC9-87CBCF2211C9@example.com>"
      },
      {
        "name":"X-SES-Outgoing",
        "value":"2015.09.11-54.240.9.183"
      },
      {
        "name":"Feedback-ID",
        "value":"1.us-east-1.Krv2FKpFdWV+KUYw3Qd6wcpPJ4Sv/pOPpEPSHn2u2o4=:AmazonSES"
      }
    ],
    "commonHeaders":{
      "returnPath":"0000014fbe1c09cf-7cb9f704-7531-4e53-89a1-5fa9744f5eb6-000000@amazonses.com",
      "from":[
        "sender@example.com"
      ],
      "date":"Fri, 11 Sep 2015 20:32:32 +0000",
      "to":[
        "recipient@example.com"
      ],
      "messageId":"<61967230-7A45-4A9D-BEC9-87CBCF2211C9@example.com>",
      "subject":"Example subject"
    }
  },
  "content":"Return-Path: <61967230-7A45-4A9D-BEC9-87CBCF2211C9@example.com>\r\nReceived: from a9-183.smtp-out.amazonses.com (a9-183.smtp-out.amazonses.com [54.240.9.183])\r\n by inbound-smtp.us-east-1.amazonaws.com with SMTP id d6iitobk75ur44p8kdnnp7g2n800\r\n for recipient@example.com;\r\n Fri, 11 Sep 2015 20:32:33 +0000 (UTC)\r\nDKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple;\r\n\ts=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1442003552;\r\n\th=From:To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Date:Message-ID:Feedback-ID;\r\n\tbh=DWr3IOmYWoXCA9ARqGC/UaODfghffiwFNRIb2Mckyt4=;\r\n\tb=p4ukUDSFqhqiub+zPR0DW1kp7oJZakrzupr6LBe6sUuvqpBkig56UzUwc29rFbJF\r\n\thlX3Ov7DeYVNoN38stqwsF8ivcajXpQsXRC1cW9z8x875J041rClAjV7EGbLmudVpPX\r\n\t4hHst1XPyX5wmgdHIhmUuh8oZKpVqGi6bHGzzf7g=\r\nFrom: sender@example.com\r\nTo: recipient@example.com\r\nSubject: Example subject\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\nContent-Transfer-Encoding: 7bit\r\nDate: Fri, 11 Sep 2015 20:32:32 +0000\r\nMessage-ID: <61967230-7A45-4A9D-BEC9-87CBCF2211C9@example.com>\r\nX-SES-Outgoing: 2015.09.11-54.240.9.183\r\nFeedback-ID: 1.us-east-1.Krv2FKpFdWV+KUYw3Qd6wcpPJ4Sv/pOPpEPSHn2u2o4=:AmazonSES\r\n\r\nExample content\r\n"
}
```

## 提醒通知
<a name="receiving-email-notifications-examples-alert"></a>

本節包含可由 S3 動作觸發的 Amazon SNS 通知範例。Lambda 動作、退信動作、停止動作與 WorkMail 動作所觸發的通知皆類似。雖然通知包含關於電子郵件的資訊，但不會包含電子郵件本身的內容。

```
{
     "notificationType": "Received",
	   "receipt": {
	     "timestamp": "2015-09-11T20:32:33.936Z",
	     "processingTimeMillis": 406,
	     "recipients": [
	       "recipient@example.com"
	     ],
	     "spamVerdict": {
	       "status": "PASS"
	     },
	     "virusVerdict": {
	       "status": "PASS"
	     },
	     "spfVerdict": {
	       "status": "PASS"
	     },
	     "dkimVerdict": {
	       "status": "PASS"
	     },
	     "action": {
	       "type": "S3",
	       "topicArn": "arn:aws:sns:us-east-1:012345678912:example-topic",
	       "bucketName": "my-S3-bucket",
	       "objectKey": "\email"
	     }
	   },
	   "mail": {
	     "timestamp": "2015-09-11T20:32:33.936Z",
	     "source": "0000014fbe1c09cf-7cb9f704-7531-4e53-89a1-5fa9744f5eb6-000000@amazonses.com",
	     "messageId": "d6iitobk75ur44p8kdnnp7g2n800",
	     "destination": [
	       "recipient@example.com"
	     ],
	     "headersTruncated": false,
	     "headers": [
	       {
	         "name": "Return-Path",
	         "value": "<0000014fbe1c09cf-7cb9f704-7531-4e53-89a1-5fa9744f5eb6-000000@amazonses.com>"
	       },
	       {
	         "name": "Received",
	         "value": "from a9-183.smtp-out.amazonses.com (a9-183.smtp-out.amazonses.com [54.240.9.183]) by inbound-smtp.us-east-1.amazonaws.com with SMTP id d6iitobk75ur44p8kdnnp7g2n800 for recipient@example.com; Fri, 11 Sep 2015 20:32:33 +0000 (UTC)"
	       },
	       {
	         "name": "DKIM-Signature",
	         "value": "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1442003552; h=From:To:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding:Date:Message-ID:Feedback-ID; bh=DWr3IOmYWoXCA9ARqGC/UaODfghffiwFNRIb2Mckyt4=; b=p4ukUDSFqhqiub+zPR0DW1kp7oJZakrzupr6LBe6sUuvqpBkig56UzUwc29rFbJF hlX3Ov7DeYVNoN38stqwsF8ivcajXpQsXRC1cW9z8x875J041rClAjV7EGbLmudVpPX 4hHst1XPyX5wmgdHIhmUuh8oZKpVqGi6bHGzzf7g="
	       },
	       {
	         "name": "From",
	         "value": "sender@example.com"
	       },
	       {
	         "name": "To",
	         "value": "recipient@example.com"
	       },
	       {
	         "name": "Subject",
	         "value": "Example subject"
	       },
	       {
	         "name": "MIME-Version",
	         "value": "1.0"
	       },
	       {
	         "name": "Content-Type",
	         "value": "text/plain; charset=UTF-8"
	       },
	       {
	         "name": "Content-Transfer-Encoding",
	         "value": "7bit"
	       },
	       {
	         "name": "Date",
	         "value": "Fri, 11 Sep 2015 20:32:32 +0000"
	       },
	       {
	         "name": "Message-ID",
	         "value": "<61967230-7A45-4A9D-BEC9-87CBCF2211C9@example.com>"
	       },
	       {
	         "name": "X-SES-Outgoing",
	         "value": "2015.09.11-54.240.9.183"
	       },
	       {
	         "name": "Feedback-ID",
	         "value": "1.us-east-1.Krv2FKpFdWV+KUYw3Qd6wcpPJ4Sv/pOPpEPSHn2u2o4=:AmazonSES"
	       }
	     ],
	     "commonHeaders": {
	       "returnPath": "0000014fbe1c09cf-7cb9f704-7531-4e53-89a1-5fa9744f5eb6-000000@amazonses.com",
	       "from": [
	         "sender@example.com"
	       ],
	       "date": "Fri, 11 Sep 2015 20:32:32 +0000",
	       "to": [
	         "recipient@example.com"
	       ],
	       "messageId": "<61967230-7A45-4A9D-BEC9-87CBCF2211C9@example.com>",
	       "subject": "Example subject"
	     }
	   }
	 }
```

# 停止規則集動作
<a name="receiving-email-action-stop"></a>

**停止**動作會終止接收規則集的判斷，且可選擇是否透過 Amazon SNS 通知您。此動作有下列選項。
+ **SNS Topic (SNS 主題)** - Amazon SNS 主題的名稱或 ARN，用以於執行停止動作時通知。Amazon SNS 主題 ARN 的範例為 *arn:aws:sns:us-east-1:123456789012:MyTopic*。選擇 **Create SNS Topic** (建立 SNS 主題) 來設定動作時，也可以建立 Amazon SNS 主題。如需 Amazon SNS 主題的詳細資訊，請參閱 [Amazon Simple Notification Service 開發人員指南](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)。
**注意**  
您選擇的 Amazon SNS 主題必須與您用來接收電子郵件的 Amazon SES 端點位於相同的 AWS 區域。

# 與 Amazon WorkMail 整合動作
<a name="receiving-email-action-workmail"></a>

**WorkMail** 動作與 Amazon WorkMail 整合。如果 Amazon WorkMail 執行所有電子郵件處理，因為 Amazon WorkMail 會自動完成設定，所以您通常不會直接使用此動作。此動作有下列選項。
+ **Organization ARN (組織 ARN)** - Amazon WorkMail 組織的 ARN。Amazon WorkMail 組織 ARN 的格式為 `arn:aws:workmail:region:account_ID:organization/organization_ID`，其中：
  + `region` 是您使用 Amazon SES 和 Amazon WorkMail 的區域 (您必須從同一區域使用)，例如 us-east-1。
  + `account_ID` 是 AWS 帳戶 ID。您可以在 AWS 管理主控台的帳戶[https://console.aws.amazon.com/billing/home?#/account](https://console.aws.amazon.com/billing/home?#/account)頁面上找到您的帳戶 AWS ID。
  + 當您建立組織時，`organization_ID` 為 Amazon WorkMail 產生的唯一識別符。您可以在 Amazon WorkMail 主控台中您組織的 Organization Settings (組織設定) 頁面上找到組織 ID。

  完整 Amazon WorkMail 組織 ARN 的範例為 *arn:aws:workmail:us-east-1:123456789012:organization/m-68755160c4cb4e29a2b2f8fb58f359d7*。如需 Amazon WorkMail 組織的資訊，請參閱 [Amazon WorkMail 管理員指南](https://docs.aws.amazon.com/workmail/latest/adminguide/organizations_overview.html)。
+ **SNS Topic (SNS 主題)** - Amazon SNS 主題的名稱或 ARN，用來於執行 Amazon WorkMail 動作時通知。Amazon SNS 主題 ARN 的範例為 *arn:aws:sns:us-east-1:123456789012:MyTopic*。選擇 **Create SNS Topic** (建立 SNS 主題) 來設定動作時，也可以建立 Amazon SNS 主題。如需 Amazon SNS 主題的詳細資訊，請參閱 [Amazon Simple Notification Service 開發人員指南](https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html)。
**注意**  
您選擇的 Amazon SNS 主題必須與您用來接收電子郵件的 Amazon SES 端點位於相同的 AWS 區域。

**注意**  
Amazon SES 僅在提供 WorkMail 的地區支援 WorkMail 動作。請參閱 AWS 一般參考中的 [Amazon WorkMail 端點和配額](https://docs.aws.amazon.com/general/latest/gr/workmail.html)。