Amazon Simple Email Service
開発者ガイド

AWS SDK for Python (Boto) を使用して E メールを送信する

このトピックでは、AWS SDK for Python (Boto) を使用して Amazon SES から E メールを送信する方法を示します。

重要

このチュートリアルでは、受信を確認できるように自分宛に E メールを送信します。さらに詳しい実験や負荷テストには、Amazon SES メールボックスシミュレーターを使用してください。メールボックスシミュレーターに送信される E メールは、送信クォータに加算されず、バウンス率や苦情率の計算にも含まれません。詳細については、「Amazon SES での E メール送信のテスト」を参照してください。

前提条件

開始する前に、次のタスクを実行します。

  • Amazon SES を使用して E メールアドレスを確認 – Amazon SES でメールを送信する前に、送信者のメールアドレスを所有していることを確認する必要があります。アカウントが Amazon SES サンドボックスにまだある場合は、受取人の E メールアドレスも検証する必要があります。E メールアドレスを検証する最も簡単な方法は、Amazon SES コンソールを使用することです。詳細については、「Amazon SES での E メールアドレスの検証」を参照してください。

  • AWS 認証情報の取得 – SDK を使用して、Amazon SES にアクセスするには、AWS アクセスキー ID と AWS シークレットアクセスキーが必要です。認証情報は、AWS マネジメントコンソール の [認証情報] ページで確認できます。認証情報の詳細については、「Amazon SES での認証情報の使用」を参照してください。

  • Python のインストール – Python は https://www.python.org/downloads/ からダウンロードできます。このチュートリアルのコードは Python 2.7.6 および Python 3.6.1 でテスト済みです。Python をインストールしたら、Python をコマンドプロンプトから実行できるように環境変数に Python へのパスを追加します。

  • AWS SDK for Python (Boto) のインストール – ダウンロードとインストールの手順については、AWS SDK for Python (Boto) のドキュメントを参照してください。このチュートリアルのサンプルコードは SDK for Python バージョン 1.4.4 でテスト済みです。

  • 共有認証情報ファイルの作成 – このセクションのサンプルコードが正常に機能するためには、共有認証情報ファイルを作成する必要があります。詳細については、「認証情報の共有ファイルの作成」を参照してください。

手順

次の手順では、SDK for Python を使用して Amazon SES で E メールを送信する方法を示します。

SDK for Python を使用して Amazon SES から E メールを送信するには

  1. テキストエディタで amazon-ses-sample.py という名前のファイルを作成します。ファイルに次のコードを貼り付けます。

    import boto3 from botocore.exceptions import ClientError # Replace sender@example.com with your "From" address. # This address must be verified with Amazon SES. SENDER = "Sender Name <sender@example.com>" # Replace recipient@example.com with a "To" address. If your account # is still in the sandbox, this address must be verified. RECIPIENT = "recipient@example.com" # Specify a configuration set. If you do not want to use a configuration # set, comment the following variable, and the # ConfigurationSetName=CONFIGURATION_SET argument below. CONFIGURATION_SET = "ConfigSet" # If necessary, replace us-west-2 with the AWS Region you're using for Amazon SES. AWS_REGION = "us-west-2" # The subject line for the email. SUBJECT = "Amazon SES Test (SDK for Python)" # The email body for recipients with non-HTML email clients. BODY_TEXT = ("Amazon SES Test (Python)\r\n" "This email was sent with Amazon SES using the " "AWS SDK for Python (Boto)." ) # The HTML body of the email. BODY_HTML = """<html> <head></head> <body> <h1>Amazon SES Test (SDK for Python)</h1> <p>This email was sent with <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the <a href='https://aws.amazon.com/sdk-for-python/'> AWS SDK for Python (Boto)</a>.</p> </body> </html> """ # The character encoding for the email. CHARSET = "UTF-8" # Create a new SES resource and specify a region. client = boto3.client('ses',region_name=AWS_REGION) # Try to send the email. try: #Provide the contents of the email. response = client.send_email( Destination={ 'ToAddresses': [ RECIPIENT, ], }, Message={ 'Body': { 'Html': { 'Charset': CHARSET, 'Data': BODY_HTML, }, 'Text': { 'Charset': CHARSET, 'Data': BODY_TEXT, }, }, 'Subject': { 'Charset': CHARSET, 'Data': SUBJECT, }, }, Source=SENDER, # If you are not using a configuration set, comment or delete the # following line ConfigurationSetName=CONFIGURATION_SET, ) # 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'])
  2. amazon-ses-sample.py で、以下を独自の値に置き換えます。

    • sender@example.com – Amazon SES で検証した E メールアドレスに置き換えます。詳細については、「ID の検証」を参照してください。Amazon SES では、E メールアドレスの大文字と小文字が区別されます。検証したアドレスと完全に一致するアドレスを入力してください。

    • recipient@example.com – 受取人のアドレスに置き換えます。アカウントがサンドボックスにまだある場合は、このアドレスを使用前に確認する必要があります。詳細については、「Amazon SES サンドボックス外への移動」を参照してください。検証したアドレスと完全に一致するアドレスを入力してください。

    • (オプション) us-west-2 – 米国西部 (オレゴン) 以外のリージョンで Amazon SES を使用する場合は、使用するリージョンに置き換えます。Amazon SES を使用できるリージョンのリストについては、「リージョンと Amazon SES」を参照してください。

  3. 保存 amazon-ses-sample.py.

  4. プログラムを実行するには、amazon-ses-sample.py と同じディレクトリでコマンドプロンプトを開き、「python amazon-ses-sample.py」と入力します。

  5. 出力を確認します。メールが正常に送信されると、コンソールに "Email sent!" と表示されます。送信に失敗すると、エラーメッセージが表示されます。

  6. 受取人のアドレスの E メールクライアントにサインインします。送信した E メールメッセージを確認します。

このページの内容: