Amazon Simple Email Service
開発者ガイド

受信メールイベントの例

受信メールイベントを Lambda 関数に送信する方法は 2 つあります。1 つ目は、受信ルールで Lambda アクションを使用して、イベントレコードを関数に直接送信する方法です。2 つ目は、受信ルールで Amazon SNS アクションを使用してイベントレコードを Amazon SNS に送信し、Amazon SNS トピックにサブスクライブするエンドポイントとして Lambda 関数を追加する方法です。

このセクションでは、Amazon SES が Lambda に送信できるイベントレコードの例を示します。これらの例を使用して、Lambda 関数を作成、テストできます。

注記

このセクションの例には、読みやすいように改行が含まれています。このセクションの例をコピーする場合は、有効な JSON オブジェクトを生成するため、追加されている改行を削除してください。

Lambda アクションによって提供されるイベントレコード

受信ルールに Lambda アクションを追加すると、 Amazon SES は受信メッセージを受信するたびに Lambda にイベントレコードを送信します。このイベントには、受信メッセージのいくつかの E メールヘッダーに関する情報と、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 アクションによって提供されるイベントレコード

受信ルールに Amazon SNS アクションを追加すると、通知には E メールのコンテンツ全体が含まれます。Lambda 関数で E メールの本文を処理する場合は、代わりに、受信ルールに 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>, "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 属性には、メッセージのヘッダーとコンテンツが含まれます。次の例は、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==" }