Amazon Simple Email Service
開発者ガイド

Amazon SES による E メール受信のユースケースの検討

Amazon SES によるメール受信を設定する前に、以下の事項を検討すると役立ちます。

E メールのコンテンツ

  • Amazon SES で E メールのコンテンツをユーザーに渡す方法

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

  • E メールサイズの制限としてどの程度の大きさが必要ですか。

    Amazon 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 Developer Guide を参照してください。

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

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

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

不要なメール

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

    E メール受信プロセスでは、送信者のメールサーバーとの SMTP 対話中と、E メールのプロパティを調査可能な配信後の 2 つの時点で E メールを拒否することができます。SMTP 対話中に拒否されたメールについては課金されないため、この時点でできるだけ多くの不要なメールを拒否することにはメリットがあります。SMTP 対話中には、IP アドレスフィルタと受信ルールを使用して E メールを拒否できます。この両方について、「メール受信の概念」で説明されています。

    SMTP 対話の後で、Amazon SES はウイルススキャン、スパムスキャン、およびドメインキーアイデンティファイドメール (DKIM) とセンダーポリシーフレームワーク (SPF)、また Domain-based Message Authentication、Reporting & Conformance (DMARC) の認証チェックを実行します。Amazon SES は、E メールを信頼するかどうか決定するため、これらのすべてのテストの判定を作成します。その E メールを信頼しない場合は、削除するか送信者にバウンス応答を送信します。この判断ポイントは Amazon SES で E メールを配信した後に起きるため、このメールに対する課金が発生します。Lambda を使用してバウンス応答を送信すると、Lambda の使用に対して課金される場合があります。

  • 受取人または IP アドレス以外のプロパティに基づいて E メールをフィルタリングしますか。

    同期実行される Lambda 関数 ("RequestResponse" として呼び出される) を使用して、メッセージと一致する複雑な条件を記述し、それらの関数を受信ルールに組み込むことができます。Lambda 関数の戻り値は、受信ルールおよび受信ルールセットの評価を続行または停止するかどうかを決定します。たとえば、Amazon SES でスパムとしてフラグを付けたメールを削除する受信ルールを設定できます。DKIM または DMARC などの特定の認証テストに合格しないメッセージをバウンスすることもできます。これらの状況のコード例は、Lambda 関数の例 で利用できます。

他の AWS サービスの使用

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

    メールを Amazon S3 バケットに配信する場合、所有していない Amazon SNS トピックに発行する場合、メールで Lambda 関数をトリガーする場合、またはカスタムのマスター AWS KMS キーを使用する場合は、それらのリソースへのアクセス権限を Amazon SES に付与する必要があります。Amazon SES にアクセス権限を付与するには、それらの AWS のサービスのコンソールまたは API でリソースに対するポリシーを作成します。詳細については アクセス権限の付与.

メールのストリーム

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

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