Amazon Simple Storage Service (Amazon S3) バケットに受信メールを送信する Amazon Simple Email Service (Amazon SES) 受信ルールを設定しました。しかし、受信メールが S3 バケットに届かないか、または保存されません。
解決方法
受信 E メールが S3 バケットに保存されない原因を特定して解決するには、以下を確認します。
Amazon SES ドメインの検証
Amazon SES で受信メールを受信するには、E メールドメインの検証プロセスを完了する必要があります。
メールエクスチェンジャーレコード (MX レコード)
Amazon SES で受信 E メールを受信するには、次のいずれかを設定する必要があります。
MX レコードは、Amazon SES を使用する AWS リージョンのエンドポイントを参照します。macOS または Linux オペレーティングシステムを使用してレコードが存在するかどうかを確認するには、dig コマンドを実行します。
注: example.com はご自身のドメインに置き換えてください。
dig MX example.com +short
MX レコードが存在する場合、コマンドは MX レコードを返します。
example.com. 60 IN MX 10 inbound-smtp.eu-west-1.amazonaws.com
Windows オペレーティングシステムを使用してレコードが存在するかどうかを確認するには、nslookup コマンドを実行します。
- コマンドプロンプトで、NSLOOKUP と入力します。その後、Enter キーを押します。
- > プロンプトで、set type=MX と入力します。その後、Enter キーを押します。
- 次の > プロンプトで、ご使用のドメインを入力します。例えば、example.com と入力します。その後、Enter キーを押します。
MX レコードが存在する場合、コマンドは MX レコードを返します。
Non-authoritative answer:
example.com MX preference = 10, mail exchanger = inbound-smtp.eu-west-1.amazonaws.com
注: ドメインに複数の MX レコードがある場合は、受信メール (SES) の MX レコードの優先度が最も高いことを確認してください。MX レコードの前の数字は優先度を示します。数字が小さいほど、優先度が高くなります。例:
10inbound-smtp.us-east-1.amazonaws.com<br>20mail-host1.example.com
受信ルールの設定
Amazon S3 への受信メールの送信に使用している受信ルールが、アクティブなルールセットにあることを確認します。E メールに適用するには、ルールがアクティブなルールセット内にある必要があります。
さらに、Amazon SES コンソールで受信ルールを表示し、次の設定を確認します。
- [Enabled] (有効): このオプションが選択されていることを確認します。E メールに適用するには、受信ルールをオンにする必要があります。
- [Require TLS] (TLS が必要): このオプションが選択されていて、受信メールが TLS で暗号化されていない場合、Amazon SES は受信メールを拒否します。
- [Recipient] (受信者): 1 つの E メール ID または E メールドメインを入力できます。または、フィールドを空白のままにして、ルールがすべての検証済みドメインに適用されるようにします。受信者として単一の E メール ID を設定した場合は、その ID が Amazon S3 に保存する E メールを受信することを確認します。他の ID によって受信される E メールは Amazon S3 に送信されません。さらに、受信者を E メールドメインまたはすべての検証済みドメインとして設定した場合は、他のアクティブな受信ルールを確認して、ルールが重複していないことを確認します。
注: Amazon SES では、ルールセットで設定した順序に基づいて受信ルールが実行されます。
- [Object key prefix] (オブジェクトのキープレフィックス): オブジェクトのキープレフィックスを設定する場合は、S3 バケット内でこのプレフィックスを確認して、受信メールを見つけてください。
S3 バケットの許可
S3 バケットに受信メールを送信するには、バケットポリシーに対する必要な許可を Amazon SES に付与する必要があります。
バケットポリシーを確認して、Amazon SES に s3:PutObject 用の許可があることを確認します。さらに、s3:PutObject 用の Amazon SES の許可を明示的に拒否するバケットポリシーの "Effect": "Deny" ステートメントを変更します。
暗号化
AWS Key Management Service (AWS KMS) で受信メールを暗号化するには、Amazon SES 受信ルールを作成するステップで暗号化キーを選択します。キーポリシーに対する必要な許可を Amazon SES に付与する必要があります。
Amazon SES による E メール受信の IP アドレスフィルター
Amazon SES への受信メールの IP アドレスフィルターを設定する場合、受信メールがフィルターで許可されている IP アドレスからのものであることを確認します。
E メールファイルのサイズ
S3 バケットに受信メールを保存するには、E メールのファイルサイズ (ヘッダーを含む) が 40 MB 以下である必要があります。
関連情報
Amazon SES E メール受信の設定
Amazon SES に対する E メール受信に関するアクセス許可の付与
Creating receipt rules console walkthrough (受信ルールの作成に関するコンソールウォークスルー)
受信ルールを使用した受信者ベースの制御