Amazon Simple Email Service
開発者ガイド

Amazon SES の送信承認時の ID 所有者の E メールの送信

代理送信者とは、他の Amazon SES 送信者と同じ方法で E メールを送信しますが、ID 所有者により使用を承認された ID の ARN を指定する点のみ異なります。E メールを送信するために Amazon SES を呼び出すと、Amazon SES は送信を承認するポリシーが指定された ID にあるかどうかを確認します。

E メールを送信するときにアイデンティティの ARN を指定する方法はいくつかあります。使用できる方法は、E メールの送信に Amazon SES API オペレーションを使用するか、Amazon SES SMTP インターフェイスを使用するかで異なります。

重要

E メールを正常に送信するには、ID 所有者が ID を検証した AWS リージョンの Amazon SES エンドポイントに接続する必要があります。

また、ID 所有者と代理送信者の両方の AWS アカウントをサンドボックスから削除しないと、どちらのアカウントからも、検証されていないアドレスに E メールを送信することはできません。詳細については、「Amazon SES サンドボックスの外への移動」を参照してください。

Amazon SES API の使用

すべての Amazon SES E メール送信者と同様に、Amazon SES API を介して Amazon SES にアクセスした場合 (HTTPS 経由で直接、または AWS SDK を通じて間接的に)、2 つの E メール送信アクション (SendEmailSendRawEmail) のいずれかを選択できます。これらの API の詳細は「Amazon Simple Email Service API Reference」で説明されていますが、ここでは送信承認パラメータの概要を示します。

SendRawEmail

SendRawEmail を使用して E メールの形式をコントロールできるようにする場合、次の 2 つの方法のいずれかを使用してクロスアカウント ID を指定できます。

  • オプションパラメーターを SendRawEmail API に渡す。必須のパラメーターを次の表で説明します。

    パラメータ

    説明

    SourceArn

    SourceSendRawEmail パラメータで指定された E メールアドレスから送信することを許可する送信承認ポリシーに関連付けられたアイデンティティの ARN。

    注記

    SourceArn のみを指定すると、Amazon SES は「From」アドレスと「Return Path」アドレスを SourceArn で指定された ID に設定します。

    FromArn

    raw E メールのヘッダーで特定の「From」アドレスを指定することを許可する送信承認ポリシーに関連付けられたアイデンティティの ARN。

    ReturnPathArn

    SendRawEmailReturnPath パラメータで指定された E メールアドレスを使用することを許可する送信承認ポリシーに関連付けられた ID の ARN。

  • E メールに X ヘッダーを含める。X ヘッダーは、標準的な E メールヘッダーに加えて使用できるカスタムヘッダーです (From、Reply-To、または Subject ヘッダーなど)。Amazon SES が認識する以下の 3 つの X ヘッダーを使用して、送信承認パラメータを指定することができます。

    重要

    これらの X ヘッダーは、E メールの送信前に Amazon SES により削除されるため、DKIM 署名には含めないでください。

    X ヘッダー

    説明

    X-SES-SOURCE-ARN

    SourceArn に対応します。

    X-SES-FROM-ARN

    FromArn に対応します。

    X-SES-RETURN-PATH-ARN

    ReturnPathArn に対応します。

    Amazon SES は送信前に E メールからすべての X ヘッダーを削除します。X ヘッダーのインスタンスを複数含めた場合、Amazon SES は最初のインスタンスだけを使用します。

    次の例は、送信認証 X ヘッダーを含む E メールを示しています。

    X-SES-SOURCE-ARN: arn:aws:ses:us-west-2:123456789012:identity/example.com X-SES-FROM-ARN: arn:aws:ses:us-west-2:123456789012:identity/example.com X-SES-RETURN-PATH-ARN: arn:aws:ses:us-west-2:123456789012:identity/example.com From: sender@example.com To: recipient@example.com Return-Path: feedback@example.com Subject: subject Content-Type: multipart/alternative; boundary="----=_boundary" ------=_boundary Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit body ------=_boundary Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit body ------=_boundary--

SendEmail

SendEmail オペレーションを使用する場合、以下のオプションパラメータを渡すことでクロスアカウントアイデンティティを指定できます。SendEmail オペレーションを使用する場合、X ヘッダーは使用できません。

パラメータ

説明

SourceArn

SourceSendRawEmail パラメータで指定された E メールアドレスから送信することを許可する送信承認ポリシーに関連付けられたアイデンティティの ARN。

ReturnPathArn

SendRawEmailReturnPath パラメータで指定された E メールアドレスを使用することを許可する送信承認ポリシーに関連付けられた ID の ARN。

以下の例は、SourceArn および ReturnPathArn 属性が含まれている E メールを、SendEmail オペレーションと SDK for Python を使用して送信する方法を示しています。

import boto3 from botocore.exceptions import ClientError # Create a new SES resource and specify a region. client = boto3.client('ses',region_name="us-west-2") # Try to send the email. try: #Provide the contents of the email. response = client.send_email( Destination={ 'ToAddresses': [ 'recipient@example.com', ], }, Message={ 'Body': { 'Html': { 'Charset': 'UTF-8', 'Data': 'This email was sent with Amazon SES.', }, }, 'Subject': { 'Charset': 'UTF-8', 'Data': 'Amazon SES Test', }, }, SourceArn='arn:aws:ses:us-west-2:123456789012:identity/example.com', ReturnPathArn='arn:aws:ses:us-west-2:123456789012:identity/example.com', Source='sender@example.com', ReturnPath='feedback@example.com' ) # Display an error if something goes wrong. except ClientError as e: print(e.response['Error']['Message']) else: print("Email sent! Message ID:"), print(response['ResponseMetadata']['RequestId'])

Amazon SES SMTP インターフェイスの使用

クロスアカウント送信で Amazon SES SMTP インターフェイスを使用する場合は、X-SES-SOURCE-ARNX-SES-FROM-ARN、および X-SES-RETURN-PATH-ARN の各ヘッダーをメッセージに含める必要があります。これらのヘッダーは、SMTP 通信で DATA コマンドを発行した後に渡します。