Amazon SESのEメール受信の概念とユースケース - Amazon Simple Email Service

Amazon SESのEメール受信の概念とユースケース

メールの受信者としてAmazon SESを使用する場合は、メールの処理方法をサービスに指示します。主な方法である受信ルールを使用すると、受信者ベースの制御を使用して、受信者に基づいて実行する一連のアクションを指定し、Eメール受信を細かく制御することができます。もう1つの方法であるIPアドレスフィルターは、発信元のIPアドレスまたはアドレスの範囲に基づいてメールをブロックまたは許可するための幅広いレベルのIPベースの制御を提供します。

このセクションでは、これらの両方の方法と、Amazon SES が受信した E メールを処理する方法の概要と、ルールと加工を設定するときに E メールを受信し、加工し、処理する方法を検討するのに役立つユースケースについて説明します。

受信ルールを使用した受信者ベースの制御

受信メールを制御する主な方法は、自分が所有している検証済みドメイン ID (Eメールアドレス、ドメイン、またはサブドメイン) のアクションの順序付きリストを使用して、メールの処理方法を指定することです。これらのアクションはルールセット 内で作成する受信ルール で定義および指定されます。

オプションとして、受信メールの宛先となる受信者が条件で指定された受信者IDと一致する場合にのみアクションが実行されるように指定する方法として、受信者条件を追加することもできます。たとえば、example.com というドメインを所有している場合、user@example.com 宛てのメールはバウンスさせ、example.com およびそのサブドメイン宛てのそれ以外のすべてのメールを配信するように指定できます。

受信者の条件を追加しなければ、検証済みドメインに属するすべてのメールアドレス、ドメイン、およびサブドメインにアクションが適用されます。次のアクションは受信ルールに適用できます。

  • ヘッダー追加アクション - 受信 E メールにヘッダーを追加します。このアクションは通常、他のアクションとの組み合わせでのみ使用します。

  • バウンスレスポンスアクションの応答 - 送信者にバウンス応答を返すことによって E メールを拒否し、オプションで Amazon SNS を通じて通知します。

  • 呼び出しAWS Lambda 関数アクション - Lambda 関数を通じてコードを呼び出し、オプションで Amazon SNS を通じて通知します。

  • S3バケットアクションへの配信 - メールを Amazon S3 バケットに配信し、オプションで Amazon SNS を通じて通知します。

  • Amazon SNS トピックアクションへの発行- E メール全体を Amazon SNS トピックに発行します。

    注記

    この SNS アクションでは、メールのコンテンツの完全なコピーが Amazon SNS 通知に含まれます。ここで言及されるそれ以外の Amazon SNS 通知オプションは、単純にメールの配信を通知するだけであり、メールのコンテンツそのものではなくメールに関する情報が含まれます。

  • 停止ルールセットアクション - 受信ルールセットの評価を終了し、オプションで、Amazon SNS を通じて通知します。

  • Amazon WorkMail アクションとの統合 - メールを Amazon WorkMail で処理します。Amazon WorkMail がセットアップを処理するため、このアクションを直接使用することは通常はありません。

複数の受信ルールがグループ化されたものがルールセット です。既存のルールセットがない場合は、受信ルールの作成を開始する前にルールセットを作成する必要があります。ご使用のAWS アカウントで複数の受信ルールを定義することはできますが、有効にできる受信ルールセットは常に 1 つだけです。次の図は、受信ルール、受信ルールセット、アクションが相互にどのように関連するのかを示しています。


                インバウンド E メールの概要

IP アドレスフィルタを使用した IP ベースの制御

IP アドレスフィルタ を設定することで、メールの流れを制御できます。IP アドレスフィルタはオプションであり、特定の IP アドレスまたは IP アドレス範囲から送信されるメールを受け入れるか拒否するかを指定できます。IP アドレスフィルタには、ブロックリスト (そこから受信するメールをブロックする IP アドレス) と 許可リスト (常にメールを受け入れる IP アドレス) を含めることができます。

IP アドレスフィルタは、スパムをブロックするのに便利です。Amazon SES は、スパムの送信元として知られる IP アドレスの独自のブロックリストを保持していますが、該当する IP アドレスを許可リストに追加することで、その IP アドレスからのメールを受信するよう選択できます。

注記
  • Amazon EC2 の IP アドレスから送信されるメールを許可する場合は、そのアドレスを許可リストに追加する必要があります。Amazon EC2 から送信されるすべてのメールは、デフォルトではブロックされています。

  • 既知の IP アドレスで構成される有限のリストからのメールのみを受信する場合は、0.0.0.0/0 を含むブロックリストをセットアップし、信頼する IP アドレスを含む許可リストをセットアップします。この設定では、デフォルトではすべての IP アドレスがブロックされ、明示的に指定する IP アドレスからのメールのみが許可されます。

E メール受信プロセス

ご使用のドメイン宛ての E メールを Amazon SES が受信するときは、以下のイベントが発生します。

  1. Amazon SES は最初に送信者の IP アドレスを検索します。Amazon SES は、次の場合を除き、メールがこの段階を通過することを許可します。

    • IP アドレスがブロックリストに含まれている。

    • IP アドレスが Amazon SES のブロックリストに含まれており、指定した許可リストには含まれていません。

  2. Amazon SES は、設定された有効な受信ルールセットを調査して、受信者の条件と一致する条件が受信ルールに含まれているかどうかを判定します。

    • 受信者の条件があり、受信した E メールの受信者のいずれかに一致する場合、Amazon SES は E メールを受け入れます。一致がない場合、Amazon SES は当該メールを拒否します。

    • 受信ルールに受信者の条件が含まれていない場合、Amazon SES はメールを受け入れます。ルールのすべてのアクションは、お客様が所有している検証済みのすべての ID に適用されます。

  3. Amazon SES は E メールを認証し、スパムとマルウェアについてコンテンツをスキャンします。

    • Amazon SES に E メールを配信したリモートホストの IP アドレスは、SMTP トランザクションで使用される MAIL FROM のドメインで指定された SPF ポリシーと照合されます。

    • メールのヘッダーセクションにある DKIM 署名がチェックされます。

    • コンテンツスキャンが有効になっている場合、スパムとマルウェアについて E メールコンテンツをスキャンします。

    • E メール認証とコンテンツスキャンの結果は、受信ルールの評価中に利用可能になります。

    詳細については、メール認証とマルウェア検出 を参照してください。

  4. Amazon SES が受け入れる E メールの場合、有効なルールセット内のすべての受信ルールが、定義した順序で適用されます。各受信ルール内では、アクションはユーザーが定義した順序で実行されます。

Amazon SES による E メール受信に関するユースケースと制限

Amazon SES による E メール受信に関して、一般的な考慮事項とユースケースをいくつか説明します。質問と回答形式で提示され、Amazon SES を使用して、所有している 1 つ以上の検証済みドメインに代わって E メールを受信および管理することが有益かどうかを判断するのに役立つ、よくある質問と事実です。

リージョナルな可用性

ご利用のリージョンで Amazon SES は E メール受信をサポートしていますか?

Amazon SES は、特定の AWS リージョンでのみ E メール受信をサポートしています。リージョンの完全なリストを使用した E メールの受信については、AWS 全般のリファレンスのAmazon Simple Email Service のエンドポイントとクォータ を参照してください。

POP または IMAP ベースのEメールクライアント

受信メールの受信に Microsoft Outlook を使用することはできますか?

Amazon SES には、E メールを受信するための POP サーバーや IMAP サーバーは含まれていません。つまり、Microsoft Outlook などの E メールクライアントを使用して E メールを受信することはできません。E メールクライアントを使用して送信と受信の両方が可能なソリューションが必要な場合は、Amazon WorkMail の使用を検討してください。

他の AWS サービスの使用

適切なアクセス権限をセットアップしましたか。

メールをS3 バケットに配信する場合、自身が所有していない Amazon SNS トピックに公開する場合、 Lambda 関数をトリガーする場合、または顧客が管理するキーを使用する場合は、それらのリソースへのアクセス許可を Amazon SES に付与する必要があります。Amazon SES にアクセス権限を付与するには、それらの AWS のサービスに対応するコンソールまたは API から、リソースに対するポリシーを作成します。詳細については.アクセス許可の付与

E メールのコンテンツ

どのような場合に Amazon SES で E メールのコンテンツを合格にしますか。

Amazon SES では、E メールのコンテンツを 2 通りの方法で提供できます。指定された S3 バケットに E メールを保存する方法か、E メールのコピーを含む Amazon SNS 通知を送信する方法です。Amazon SES では、変更を加えていない E メールを多目的インターネットメール拡張 (MIME) 形式で配信します。MIME 形式の詳細については、RFC 2045 を参照してください。

受信するメールの大きさはどれくらいですか?

S3バケットに E メールを保存する場合、E メールの最大サイズ (ヘッダーを含む) は 30 MB です。Amazon SNS を通じて E メールを受信する場合、E メールの最大サイズ (ヘッダーを含む) は 150 KB です。

E メールの処理をどのようにトリガーしますか。

メールが配信された後で、独自のコードで処理する場合があります。たとえば、アプリケーションを使用して Base64 エンコードの E メールを表示可能な形式に変換してから、エンドユーザーが E メールクライアントで使用できるようにする場合が考えられます。このプロセスを開始する方法はいくつかあります。

  • E メールが Amazon S3 に配信される場合、アプリケーションは、S3 アクションによって生成される Amazon SNS 通知をリッスンし、通知から E メールのメッセージ ID を抽出して、そのメッセージ ID を使用して Amazon S3 から E メールを取得します。

    または、Lambda 関数を記述することで、受信ルールに E メール処理を組み込むこともできます。この場合、受信ルールでは、まず E メールを Amazon S3 に書き込んでから Lambda 関数をトリガーする必要があります。Lambda 関数が他のアクションの実行方法に影響する結果を返す必要があるかどうかに応じて、受信ルールから複数の Lambda アクションを同期または非同期で実行することができます。ユースケースで同期実行が絶対に必要とされるのでない限りは、非同期実行を使用することをお勧めします。AWS Lambda の詳細については、AWS Lambda 開発者ガイドを参照してください。

  • SNS アクションを使用して E メールを Amazon SNS 通知を介して配信する場合は、アプリケーションは、Amazon SNS 通知をリッスンし、通知から E メールメッセージを抽出することができます。

E メールを暗号化しますか。

Amazon SES はAWS Key Management Service (AWS KMS ) と統合され、オプションでS3 バケットに書き込むメールを暗号化します。Amazon SES は、クライアント側の暗号化を使用して、Amazon S3 に書き込む前にメールを暗号化します。つまり、Amazon S3 からメールを取得した後にご自身でコンテンツを復号する必要があります。- AWS SDK for Java および AWS SDK for Ruby は、復号化を処理できるクライアントを提供します。Amazon SES では、E メールをS3 バケットに配信するよう選択した場合にのみEメールを暗号化できます。

不要なメール

メール受信プロセスのどの時点で、不要なメールを拒否しますか。

送信者が受信者に E メールを送信しようとすると、送信者の E メールサーバーは一連のコマンドを受信者のサーバーと交換します。​ このシーケンスは SMTP 対話と呼ばれます。

E メール受信プロセスの 2 つの時点 (SMTP 対話中と SMTP 対話後) で、受信 E メールを拒否できます。​ SMTP 対話中にメッセージを拒否するために IP アドレスフィルターを使用し、SMTP 対話後に E メールを拒否するために受信ルールを使用します。​

IP アドレスフィルターを使用して、特定の IP アドレスから送信された E メールを拒否することができます。​ 迷惑メールを拒否するために IP アドレスフィルターを使用する利点は、SMTP 対話中に拒否されたメッセージに対しては請求されないことです。​ ​IP アドレスフィルターを使用することの欠点は、実際のメッセージの内容を分析することなく、指定した IP アドレスからの E メールを拒否してしまうことです。IP アドレスフィルターの詳細については、「IP アドレスフィルタのコンソールウォークスルーの作成」を参照してください。

受信ルールを使用して、メッセージの送信先アドレス (ドメイン、またはサブドメイン) に基づいて、バウンス通知を E メールの送信者に送信できます。​ ​受信ルールを使用する利点は、送信者にバウンス通知を送信する前に、受信メッセージに対して追加の分析を実行できることです。たとえば、メッセージが DKIM 認証に失敗した場合やスパムとして識別された場合にのみバウンス通知を送信するために AWS Lambda を使用できます。​ 受信ルールを使用することの欠点は、受信ルールが SMTP 対話の後に処理されるため、受信したメッセージごとに請求されることです。​ Lambda を使用して着信メッセージの内容を分析した場合も、料金が発生する可能性があります。​ 受信ルールの詳細については、「受信ルールのコンソールウォークスルーの作成」を参照してください。Lambda を使用した受信 E メール分析の詳細については、「Lambda 関数の例」を参照してください。

メールのストリーミング

メールのストリームをどのように分割しますか。

ご使用のドメインでは、さまざまなクラスのメールを受信する可能性があります。たとえば、user@example.com 宛てのメールのように、ドメインのメールの一部は個人の受信箱に配信されます。それ以外に、unsubscribe@example.com 宛てのメールのように、自動化されたシステムに送信されるべきものもあります。それぞれ異なる処理を行えるように、受信ルールを使用して受信メールを分割することができます。受信ルールをセットアップする方法については、「受信ルールの作成」を参照してください。

E メール受信認証とマルウェアスキャン

Amazon SES は受信した各 E メールを認証し、オプションでスパムやマルウェアについて E メールのコンテンツをスキャンします。SES は、E メール認証またはコンテンツスキャンの結果に基づいて、受信した E メールに対してアクションを実行しません。しかし、これらの操作の結果は、Amazon SNS の通知などの SES 受信ルールアクションで使用できる属性として、または Amazon S3 に配信されるメッセージのヘッダーとして、お客様に提供されます。

E メールの認証

Amazon SES は、SPF、DKIM、DMARC を使用して受信した各 E メールを認証します。各認証メカニズムの結果は、アクティブな受信ルールセットのルールの評価の一環として SES がディスパッチする Amazon SNS 通知に表示されます。さらに、Amazon S3 でメールのコピーを受信することを選択した場合、E メール認証の結果は SES が E メールのヘッダーセクションに追加する Authentication-Results ヘッダーでキャプチャされます :

Authentication-Results: example.com; spf=pass (spfCheck: 10.0.0.1 is permitted by domain of example.com) client-ip=10.0.0.1; envelope-from=example@example.com; helo=10.0.0.1; dkim=pass header.i=example.com; dkim=permerror header.i=some-example.com; dmarc=pass header.from=example@example.com;

Authentication-Results ヘッダーについては、「RFC 8601」を参照してください。

スパムおよびマルウェア検出のための E メールコンテンツのスキャン

Amazon SES は、E メールに一致する受信ルールのスキャン有効 (API) やスパムとウイルススキャン (コンソール) 属性の値に応じて、受信した E メールコンテンツをマルウェアについてスキャンします。デフォルトでは、SES は受信した E メールコンテンツをマルウェアについてスキャンします。特定の受信ルールに一致する受信メールのコンテンツスキャンを無効にするには、API を使用する場合は、受信ルールの [ScanEnabled] (スキャン有効) フラグを false に設定し、コンソールを使用する場合は、[Spam and virus scanning] (スパムとウイルススキャン) チェックボックスをオフにします。E メールに一致する受信ルールでスキャンが有効になっている場合、コンテンツスキャンの結果は、アクティブな受信ルールセットのルール評価の一環として SES がディスパッチする Amazon SNS 通知に表示されます。さらに、Amazon S3 でメールのコピーを受信することを選択した場合、コンテンツスキャンの結果はSES がメールのヘッダーセクションに追加するヘッダー X-SES-Spam-Verdict および X-SES-Virus-Verdict にキャプチャされます。

X-SES-Spam-Verdict: PASS X-SES-Virus-Verdict: FAIL

上記のヘッダーに使用できる値は、次のとおりです :

これでE メール受信の概念、そのしくみ、ユースケースを理解されたので、E メール受信のセットアップ から始めてみましょう。