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 は、変更が加えられていない raw E メールを配信しますが、これは多目的インターネットメール拡張 (MIME) 形式です。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 メールを送信しようとすると、送信者の E メールサーバーは一連のコマンドを受信者のサーバーと交換します。​このシーケンスは SMTP 対話と呼ばれます。

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

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

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

他の AWS サービスの使用

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

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

メールのストリーム

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

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