

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS SDK を使用して Amazon SES 経由で E メールを送信する
<a name="send-an-email-using-sdk-programmatically"></a>

 AWS SDK を使用して Amazon SES 経由で E メールを送信できます。 AWS SDKsは複数のプログラミング言語で使用できます。詳細については、[Tools for Amazon Web Services](https://aws.amazon.com/tools/#sdk) を参照してください。

## 前提条件
<a name="send-an-email-using-sdk-programmatically-prereqs"></a>

次のセクションのコードサンプルを完了するには、次の前提条件を完了する必要があります。
+ まだ行っていない場合は、「[Amazon Simple Email Service を設定する](setting-up.md)」の作業を完了してください。
+ **Amazon SES で E メールアドレスを検証する**- Amazon SES で E メールを送信するには、送信者の E メールアドレスを所有していることを検証する必要があります。アカウントが Amazon SES サンドボックスにまだある場合は、受信者の E メールアドレスも検証する必要があります。E メールアドレスを検証するには、Amazon SES コンソールを使用することをお勧めします。詳細については、「[Eメールアドレス ID の作成](creating-identities.md#verify-email-addresses-procedure)」を参照してください。
+ ** AWS 認証情報の取得** — SDK を使用して Amazon SES にアクセスするには、 AWS アクセスキー ID と AWS シークレットアクセスキーが必要です。認証情報を取得するするには、 AWS マネジメントコンソールの「[セキュリティの認証情報](https://console.aws.amazon.com/iam/home?#security_credential)」のページを参照してください。認証情報の詳細については、「[Amazon SES 認証情報の種類](send-email-concepts-credentials.md)」を参照してください。
+ **共有認証情報ファイルの作成** — このセクションのサンプルコードが正常に機能するためには、共有認証情報ファイルを作成する必要があります。詳細については、「[AWS SDK を使用して Amazon SES 経由で E メールを送信するときに使用する共有認証情報ファイルの作成](create-shared-credentials-file.md)」を参照してください。

## コードの例
<a name="send-an-email-using-sdk-programmatically-examples"></a>

**重要**  
次のチュートリアルでは、受信を確認できるように自分宛に E メールを送信します。さらに詳しい実験や負荷テストには、Amazon SES メールボックスシミュレーターを使用してください。メールボックスシミュレーターに送信される E メールは、送信クォータに加算されず、バウンス率や苦情率の計算にも含まれません。詳細については、[手動でメールボックスシミュレーターを使用する](send-an-email-from-console.md#send-email-simulator)を参照ください。

**Topics**

------
#### [ .NET ]

以下の手順は、[Visual Studio](https://www.visualstudio.com/)と AWS SDK for .NETを使用して、Amazon SES 経由で E メールを送信する方法を示しています。

このソリューションは次のコンポーネントを使用してテスト済みです。
+ Microsoft Visual Studio コミュニティ 2017、バージョン 15.4.0。
+ Microsoft .NET Framework バージョン 4.6.1.
+ NuGet を使用してインストールされた AWSSDK.Core パッケージ (バージョン 3.3.19)。
+ NuGet を使用してインストールされた AWSSDK.SimpleEmail パッケージ (バージョン 3.3.6.1)。

**開始する前に、次のタスクを実行します。**
+ **Visual Studio のインストール** - Visual Studio は [https://www.visualstudio.com/](https://www.visualstudio.com/)から入手可能です。

**を使用して E メールを送信するには AWS SDK for .NET**

1. 以下のステップを実行して、新しいプロジェクトを作成します。

   1. Visual Studio を起動します。

   1. [**ファイル**] メニューで [**New**]、[**Project**] の順に選択します。

   1. [**New Project**] ウィンドウの左側のパネルで、[**Installed**]、[**Visual C\$1**] の順に展開します。

   1. 右側のパネルで、[**Console App (.NET Framework)**] を選択します。

   1. **名前**に **AmazonSESSample** と入力し、**OK** を選択します。

1. 次のステップを実行して、NuGet を使用して Amazon SES パッケージをソリューションに含めます。

   1. **ソリューションエクスプローラー**ペインで、プロジェクトを右クリックして、コンテキストメニューの [**NuGet パッケージの管理**] を選択します。

   1. [**NuGet: AmazonSESSample**] タブで、[**参照**] を選択します。

   1. 検索ボックスに [**AWSSDK.SimpleEmail**] と入力します 

   1. [**AWSSDK.SimpleEmail**] パッケージを選択し、[**インストール**] を選択します。

   1. **変更のプレビュー**ウィンドウで、**OK** を選択します。

1. [**Program.cs**] タブで、次のコードを貼り付けます。

   ```
    1. using Amazon;
    2. using System;
    3. using System.Collections.Generic;
    4. using Amazon.SimpleEmail;
    5. using Amazon.SimpleEmail.Model;
    6. 
    7. namespace AmazonSESSample 
    8. {
    9.     class Program
   10.     {
   11.         // Replace sender@example.com with your "From" address.
   12.         // This address must be verified with Amazon SES.
   13.         static readonly string senderAddress = "sender@example.com";
   14. 
   15.         // Replace recipient@example.com with a "To" address. If your account
   16.         // is still in the sandbox, this address must be verified.
   17.         static readonly string receiverAddress = "recipient@example.com";
   18. 
   19.         // The configuration set to use for this email. If you do not want to use a
   20.         // configuration set, comment out the following property and the
   21.         // ConfigurationSetName = configSet argument below. 
   22.         static readonly string configSet = "ConfigSet";
   23. 
   24.         // The subject line for the email.
   25.         static readonly string subject = "Amazon SES test (AWS SDK for .NET)";
   26. 
   27.         // The email body for recipients with non-HTML email clients.
   28.         static readonly string textBody = "Amazon SES Test (.NET)\r\n" 
   29.                                         + "This email was sent through Amazon SES "
   30.                                         + "using the AWS SDK for .NET.";
   31.         
   32.         // The HTML body of the email.
   33.         static readonly string htmlBody = @"<html>
   34. <head></head>
   35. <body>
   36.   <h1>Amazon SES Test (SDK for .NET)</h1>
   37.   <p>This email was sent with
   38.     <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the
   39.     <a href='https://aws.amazon.com/sdk-for-net/'> AWS SDK for .NET</a>.</p>
   40. </body>
   41. </html>";
   42. 
   43.         static void Main(string[] args)
   44.         {
   45.             // Replace USWest2 with the AWS Region you're using for Amazon SES.
   46.             // Acceptable values are EUWest1, USEast1, and USWest2.
   47.             using (var client = new AmazonSimpleEmailServiceClient(RegionEndpoint.USWest2))
   48.             {
   49.                 var sendRequest = new SendEmailRequest
   50.                 {
   51.                     Source = senderAddress,
   52.                     Destination = new Destination
   53.                     {
   54.                         ToAddresses =
   55.                         new List<string> { receiverAddress }
   56.                     },
   57.                     Message = new Message
   58.                     {
   59.                         Subject = new Content(subject),
   60.                         Body = new Body
   61.                         {
   62.                             Html = new Content
   63.                             {
   64.                                 Charset = "UTF-8",
   65.                                 Data = htmlBody
   66.                             },
   67.                             Text = new Content
   68.                             {
   69.                                 Charset = "UTF-8",
   70.                                 Data = textBody
   71.                             }
   72.                         }
   73.                     },
   74.                     // If you are not using a configuration set, comment
   75.                     // or remove the following line 
   76.                     ConfigurationSetName = configSet
   77.                 };
   78.                 try
   79.                 {
   80.                     Console.WriteLine("Sending email using Amazon SES...");
   81.                     var response = client.SendEmail(sendRequest);
   82.                     Console.WriteLine("The email was sent successfully.");
   83.                 }
   84.                 catch (Exception ex)
   85.                 {
   86.                     Console.WriteLine("The email was not sent.");
   87.                     Console.WriteLine("Error message: " + ex.Message);
   88. 
   89.                 }
   90.             }
   91. 
   92.             Console.Write("Press any key to continue...");
   93.             Console.ReadKey();
   94.         }
   95.     }
   96. }
   ```

1. コードエディタで、以下の作業を行います。
   + *sender@example.com* を "差出人:" の E メールアドレスに置き換えます。このアドレスは確認する必要があります。詳細については、「[Amazon SES の検証済みID](verify-addresses-and-domains.md)」を参照してください。
   + *recipient@example.com* を "宛先:" のアドレスに置き換えます。アカウントがサンドボックスにまだある場合は、このアドレスも確認する必要があります。
   + *ConfigSet*を、この E メールを送信するときに使用する設定セットの名前に置き換えます。
   + *USWest2* を、Amazon SES を使用して E メールを送信するために使用する AWS リージョン エンドポイントの名前に置き換えます。Amazon SES を使用できるリージョンのリストについては、「*AWS 全般のリファレンス*」の「[Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region)」を参照してください。

   終了したら、`Program.cs`を保存します。

1. 次の手順に従ってアプリケーションをビルドおよび実行します。

   1. [**Build**] メニューの [**Build Solution**] を選択します。

   1. [**Debug**] メニューの [**Start Debugging**] を選択します。コンソールウィンドウが表示されます。

1. コンソールの出力を確認します。E メールが正常に送信されると、コンソールに "`The email was sent successfully.`" と表示されます 

1. E メールが正常に送信されたら、受信者アドレスの E メールクライアントにサインインします。送信した E メールメッセージを確認します。

------
#### [ Java ]

次の手順では、[Eclipse IDE for Java EE Developers ](http://www.eclipse.org/)を使用して AWS SDK プロジェクト[AWS Toolkit for Eclipse](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/welcome.html)を作成し、Java コードを変更して Amazon SES 経由で E メールを送信する方法を示します。

**開始する前に、次のタスクを実行します。**
+ **Eclipse のインストール** - Eclipse は[https://www.eclipse.org/downloads](https://www.eclipse.org/downloads)からダウンロードできます。このチュートリアルのコードは、バージョン 1.8 の Java Runtime Environment を実行する Eclipse Neon.3 (バージョン 4.6.3) でテスト済みです。
+ **のインストール AWS Toolkit for Eclipse**— Eclipse のインストール AWS Toolkit for Eclipse に を追加する手順については、[https://aws.amazon.com/eclipse](https://aws.amazon.com/eclipse) を参照してください。このチュートリアルのコードはバージョン 2.3.1 の AWS Toolkit for Eclipseでテスト済みです。

**を使用して E メールを送信するには AWS SDK for Java**

1. 次の手順を実行して、Eclipse AWS で Java プロジェクトを作成します。

   1. Eclipse を起動します。

   1. [**File**] メニューで [**New**]、[**Other**] の順に選択します。[**New**] ウィンドウで、**AWS**フォルダを展開し、[**AWS Java Project**] を選択します。

   1. **新しい Java AWS プロジェクト**ダイアログボックスで、次の操作を行います。

      1. [**Project name**] に、プロジェクト名を入力します。

      1. **AWS SDK for Java のサンプル**で、**Amazon Simple Email Service JavaMail のサンプル**を選択します。

      1. [**Finish**] を選択します。

1. Eclipse の [**Package Explorer**] ペインで、プロジェクトを展開します。

1. プロジェクトの `src/main/java` フォルダ、`com.amazon.aws.samples` フォルダの順に展開し、`AmazonSESSample.java` をダブルクリックします。

1. `AmazonSESSample.java` の内容全体を次のコードに置き換えます。

   ```
    1. package com.amazonaws.samples;
    2. 
    3. import java.io.IOException;
    4. 
    5. import com.amazonaws.regions.Regions;
    6. import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
    7. import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder;
    8. import com.amazonaws.services.simpleemail.model.Body;
    9. import com.amazonaws.services.simpleemail.model.Content;
   10. import com.amazonaws.services.simpleemail.model.Destination;
   11. import com.amazonaws.services.simpleemail.model.Message;
   12. import com.amazonaws.services.simpleemail.model.SendEmailRequest; 
   13. 
   14. public class AmazonSESSample {
   15. 
   16.   // Replace sender@example.com with your "From" address.
   17.   // This address must be verified with Amazon SES.
   18.   static final String FROM = "sender@example.com";
   19. 
   20.   // Replace recipient@example.com with a "To" address. If your account
   21.   // is still in the sandbox, this address must be verified.
   22.   static final String TO = "recipient@example.com";
   23. 
   24.   // The configuration set to use for this email. If you do not want to use a
   25.   // configuration set, comment the following variable and the 
   26.   // .withConfigurationSetName(CONFIGSET); argument below.
   27.   static final String CONFIGSET = "ConfigSet";
   28. 
   29.   // The subject line for the email.
   30.   static final String SUBJECT = "Amazon SES test (AWS SDK for Java)";
   31.   
   32.   // The HTML body for the email.
   33.   static final String HTMLBODY = "<h1>Amazon SES test (AWS SDK for Java)</h1>"
   34.       + "<p>This email was sent with <a href='https://aws.amazon.com/ses/'>"
   35.       + "Amazon SES</a> using the <a href='https://aws.amazon.com/sdk-for-java/'>" 
   36.       + "AWS SDK for Java</a>";
   37. 
   38.   // The email body for recipients with non-HTML email clients.
   39.   static final String TEXTBODY = "This email was sent through Amazon SES "
   40.       + "using the AWS SDK for Java.";
   41. 
   42.   public static void main(String[] args) throws IOException {
   43. 
   44.     try {
   45.       AmazonSimpleEmailService client = 
   46.           AmazonSimpleEmailServiceClientBuilder.standard()
   47.           // Replace US_WEST_2 with the AWS Region you're using for
   48.           // Amazon SES.
   49.             .withRegion(Regions.US_WEST_2).build();
   50.       SendEmailRequest request = new SendEmailRequest()
   51.           .withDestination(
   52.               new Destination().withToAddresses(TO))
   53.           .withMessage(new Message()
   54.               .withBody(new Body()
   55.                   .withHtml(new Content()
   56.                       .withCharset("UTF-8").withData(HTMLBODY))
   57.                   .withText(new Content()
   58.                       .withCharset("UTF-8").withData(TEXTBODY)))
   59.               .withSubject(new Content()
   60.                   .withCharset("UTF-8").withData(SUBJECT)))
   61.           .withSource(FROM)
   62.           // Comment or remove the next line if you are not using a
   63.           // configuration set
   64.           .withConfigurationSetName(CONFIGSET);
   65.       client.sendEmail(request);
   66.       System.out.println("Email sent!");
   67.     } catch (Exception ex) {
   68.       System.out.println("The email was not sent. Error message: " 
   69.           + ex.getMessage());
   70.     }
   71.   }
   72. }
   ```

1. `AmazonSESSample.java`で、以下を実際の値に置き換えます。
**重要**  
E メールアドレスでは、大文字と小文字は区別されます。検証したアドレスと完全に一致することを確認してください。
   + `SENDER@EXAMPLE.COM` - 「From」E メールアドレスに置き換えます。このアドレスを確認してから、プログラムを実行してください。詳細については、「[Amazon SES の検証済みID](verify-addresses-and-domains.md)」を参照してください。
   + `RECIPIENT@EXAMPLE.COM` - 「To」E メールアドレスに置き換えます。アカウントがサンドボックスにまだある場合は、このアドレスを使用前に確認する必要があります。詳細については、「[本稼働アクセスのリクエスト (Amazon SES サンドボックスからの移行)](request-production-access.md)」を参照してください。
   + **(オプション)`us-west-2`** — 米国西部（オレゴン）以外の地域で Amazon SES を使用する場合は、これを使用する地域に置き換えます。Amazon SES を使用できるリージョンのリストについては、「*AWS 全般のリファレンス*」の「[Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region)」を参照してください。

1. `AmazonSESSample.java` を保存します。

1. プロジェクトを構築します。[**Project**]、[**Build Project**] の順に選択します。
**注記**  
このオプションが無効の場合、自動構築が有効になっている可能性があります。その場合は、このステップをスキップします。

1. プログラムを開始して E メールを送信します。[**Run**] を選択した後、もう一度 [**Run**] を選択します。

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

1. E メールが正常に送信されたら、受信者アドレスの E メールクライアントにサインインします。送信した E メールメッセージを確認します。

------
#### [ PHP ]

このトピックでは、[AWS SDK for PHP](https://aws.amazon.com/sdk-for-php/) を使用して Amazon SES 経由で E メールを送信する方法を示します。

**開始する前に、次のタスクを実行します。**
+ **PHP をインストールする** — PHP は、[http://php.net/downloads.php](http://php.net/downloads.php) から入手できます。このチュートリアルでは、バージョン 5.5 以上の PHP が必要です。PHP をインストールした後、コマンドプロンプトから PHP を実行できるように環境変数に PHP のパスを追加します。このチュートリアルのコードは PHP 7.2.7 でテスト済みです。
+ ** AWS SDK for PHP バージョン 3 のインストール** — ダウンロードとインストールの手順については、 [AWS SDK for PHP ドキュメント](https://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html)を参照してください。このチュートリアルのコードは SDK バージョン 3.64.13 でテスト済みです。

**を使用して Amazon SES 経由で E メールを送信するには AWS SDK for PHP**

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

   ```
    1. <?php
    2. 
    3. // If necessary, modify the path in the require statement below to refer to the 
    4. // location of your Composer autoload.php file.
    5. require 'vendor/autoload.php';
    6. 
    7. use Aws\Ses\SesClient;
    8. use Aws\Exception\AwsException;
    9. 
   10. // Create an SesClient. Change the value of the region parameter if you're 
   11. // using an AWS Region other than US West (Oregon). Change the value of the
   12. // profile parameter if you want to use a profile in your credentials file
   13. // other than the default.
   14. $SesClient = new SesClient([
   15.     'profile' => 'default',
   16.     'version' => '2010-12-01',
   17.     'region'  => 'us-west-2'
   18. ]);
   19. 
   20. // Replace sender@example.com with your "From" address.
   21. // This address must be verified with Amazon SES.
   22. $sender_email = 'sender@example.com';
   23. 
   24. // Replace these sample addresses with the addresses of your recipients. If
   25. // your account is still in the sandbox, these addresses must be verified.
   26. $recipient_emails = ['recipient1@example.com','recipient2@example.com'];
   27. 
   28. // Specify a configuration set. If you do not want to use a configuration
   29. // set, comment the following variable, and the
   30. // 'ConfigurationSetName' => $configuration_set argument below.
   31. $configuration_set = 'ConfigSet';
   32. 
   33. $subject = 'Amazon SES test (AWS SDK for PHP)';
   34. $plaintext_body = 'This email was sent with Amazon SES using the AWS SDK for PHP.' ;
   35. $html_body =  '<h1>AWS Amazon Simple Email Service Test Email</h1>'.
   36.               '<p>This email was sent with <a href="https://aws.amazon.com/ses/">'.
   37.               'Amazon SES</a> using the <a href="https://aws.amazon.com/sdk-for-php/">'.
   38.               'AWS SDK for PHP</a>.</p>';
   39. $char_set = 'UTF-8';
   40. 
   41. try {
   42.     $result = $SesClient->sendEmail([
   43.         'Destination' => [
   44.             'ToAddresses' => $recipient_emails,
   45.         ],
   46.         'ReplyToAddresses' => [$sender_email],
   47.         'Source' => $sender_email,
   48.         'Message' => [
   49.           'Body' => [
   50.               'Html' => [
   51.                   'Charset' => $char_set,
   52.                   'Data' => $html_body,
   53.               ],
   54.               'Text' => [
   55.                   'Charset' => $char_set,
   56.                   'Data' => $plaintext_body,
   57.               ],
   58.           ],
   59.           'Subject' => [
   60.               'Charset' => $char_set,
   61.               'Data' => $subject,
   62.           ],
   63.         ],
   64.         // If you aren't using a configuration set, comment or delete the
   65.         // following line
   66.         'ConfigurationSetName' => $configuration_set,
   67.     ]);
   68.     $messageId = $result['MessageId'];
   69.     echo("Email sent! Message ID: $messageId"."\n");
   70. } catch (AwsException $e) {
   71.     // output error message if fails
   72.     echo $e->getMessage();
   73.     echo("The email was not sent. Error message: ".$e->getAwsErrorMessage()."\n");
   74.     echo "\n";
   75. }
   ```

1. `amazon-ses-sample.php`で、以下を独自の値に置き換えます。
   + **`path_to_sdk_inclusion`**— をプログラム AWS SDK for PHP に を含めるために必要なパスに置き換えます。詳細については、[AWS SDK for PHP ドキュメント](https://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/basic-usage.html)を参照してください。
   + **`sender@example.com`** — Amazon SES で検証した E メールアドレスに置き換えます。詳細については、「[検証済みID](verify-addresses-and-domains.md)」を参照してください。Amazon SES では、E メールアドレスの大文字と小文字が区別されます。検証したアドレスと完全に一致するアドレスを入力してください。
   + **`recipient1@example.com`, `recipient2@example.com`** – 受信者のアドレスに置き換えます。アカウントがサンドボックスにまだある場合は、受取人のアドレスも確認済みである必要があります。詳細については、「[本稼働アクセスのリクエスト (Amazon SES サンドボックスからの移行)](request-production-access.md)」を参照してください。検証したアドレスと完全に一致するアドレスを入力してください。
   + **(オプション)`ConfigSet`** — この E メールを送信する際に設定セットを使用する場合、この値を設定セットの名前で置き換えます。設定セットの詳細については、「[Amazon SES の設定セットの使用](using-configuration-sets.md)」を参照してください。
   + **(オプション)`us-west-2`** — 米国西部（オレゴン）以外の地域で Amazon SES を使用する場合は、これを使用する地域に置き換えます。Amazon SES を使用できるリージョンのリストについては、「*AWS 全般のリファレンス*」の「[Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region)」を参照してください。

1. `amazon-ses-sample.php`を保存します。

1. プログラムを実行するには、`amazon-ses-sample.php` と同じディレクトリでコマンドプロンプトを開き、次のコマンドを入力します。

   ```
   $ php amazon-ses-sample.php
   ```

1. 出力を確認します。E メールが正常に送信されると、コンソールに "`Email sent!`" が表示されます。送信に失敗すると、エラーメッセージが表示されます。
**注記**  
プログラムの実行時に "cURL error 60: SSL certificate problem" エラーが発生した場合は、[AWS SDK for PHP のドキュメント](https://docs.aws.amazon.com/aws-sdk-php/v3/guide/faq.html#what-do-i-do-about-a-curl-ssl-certificate-error)に従って、最新の CA バンドルをダウンロードしてください。次に、`amazon-ses-sample.php` で、`SesClient::factory` 配列に以下の行を追加し、ダウンロードした CA バンドルのパスで `path_of_certs`を置き換えて、プログラムを再実行します。  

   ```
   1. 'http' => [
   2.    'verify' => 'path_of_certs\ca-bundle.crt'
   3. ]
   ```

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

------
#### [ Ruby ]

このトピックでは、[AWS SDK for Ruby](https://aws.amazon.com/sdk-for-ruby/) を使用して Amazon SES 経由で E メールを送信する方法を示します。

**開始する前に、次のタスクを実行します。**
+ **Ruby のインストール** - Ruby は [https://www.ruby-lang.org/en/downloads/](https://www.ruby-lang.org/en/downloads/)からダウンロードできます。このチュートリアルのコードは Ruby 1.9.3 でテスト済みです。Ruby をインストールした後、コマンドプロンプトから Ruby を実行できるように環境変数に Ruby のパスを追加します。
+ **のインストール AWS SDK for Ruby** — ダウンロードとインストールの手順については、 *AWS SDK for Ruby デベロッパーガイド*[の「 AWS SDK for Ruby](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/setup-install.html)のインストール」を参照してください。このチュートリアルのサンプルコードは AWS SDK for Rubyバージョン 2.9.36 でテスト済みです。
+ **共有認証情報ファイルの作成** — このセクションのサンプルコードが正常に機能するためには、共有認証情報ファイルを作成する必要があります。詳細については、「[AWS SDK を使用して Amazon SES 経由で E メールを送信するときに使用する共有認証情報ファイルの作成](create-shared-credentials-file.md)」を参照してください。

**を使用して Amazon SES 経由で E メールを送信するには AWS SDK for Ruby**

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

   ```
    1. require 'aws-sdk'
    2. 
    3. # Replace sender@example.com with your "From" address.
    4. # This address must be verified with Amazon SES.
    5. sender = "sender@example.com"
    6. 
    7. # Replace recipient@example.com with a "To" address. If your account 
    8. # is still in the sandbox, this address must be verified.
    9. recipient = "recipient@example.com"
   10. 
   11. # Specify a configuration set. If you do not want to use a configuration
   12. # set, comment the following variable and the 
   13. # configuration_set_name: configsetname argument below. 
   14. configsetname = "ConfigSet"
   15.   
   16. # Replace us-west-2 with the AWS Region you're using for Amazon SES.
   17. awsregion = "us-west-2"
   18. 
   19. # The subject line for the email.
   20. subject = "Amazon SES test (AWS SDK for Ruby)"
   21. 
   22. # The HTML body of the email.
   23. htmlbody =
   24.   '<h1>Amazon SES test (AWS SDK for Ruby)</h1>'\
   25.   '<p>This email was sent with <a href="https://aws.amazon.com/ses/">'\
   26.   'Amazon SES</a> using the <a href="https://aws.amazon.com/sdk-for-ruby/">'\
   27.   'AWS SDK for Ruby</a>.'
   28. 
   29. # The email body for recipients with non-HTML email clients.  
   30. textbody = "This email was sent with Amazon SES using the AWS SDK for Ruby."
   31. 
   32. # Specify the text encoding scheme.
   33. encoding = "UTF-8"
   34. 
   35. # Create a new SES resource and specify a region
   36. ses = Aws::SES::Client.new(region: awsregion)
   37. 
   38. # Try to send the email.
   39. begin
   40. 
   41.   # Provide the contents of the email.
   42.   resp = ses.send_email({
   43.     destination: {
   44.       to_addresses: [
   45.         recipient,
   46.       ],
   47.     },
   48.     message: {
   49.       body: {
   50.         html: {
   51.           charset: encoding,
   52.           data: htmlbody,
   53.         },
   54.         text: {
   55.           charset: encoding,
   56.           data: textbody,
   57.         },
   58.       },
   59.       subject: {
   60.         charset: encoding,
   61.         data: subject,
   62.       },
   63.     },
   64.   source: sender,
   65.   # Comment or remove the following line if you are not using 
   66.   # a configuration set
   67.   configuration_set_name: configsetname,
   68.   })
   69.   puts "Email sent!"
   70. 
   71. # If something goes wrong, display an error message.
   72. rescue Aws::SES::Errors::ServiceError => error
   73.   puts "Email not sent. Error message: #{error}"
   74. 
   75. end
   ```

1. `amazon-ses-sample.rb`で、以下を独自の値に置き換えます。
   + **`sender@example.com`**— Amazon SES で検証した E メールアドレスに置き換えます。詳細については、「[検証済みID](verify-addresses-and-domains.md)」を参照してください。Amazon SES では、E メールアドレスの大文字と小文字が区別されます。検証したアドレスと完全に一致するアドレスを入力してください。
   + **`recipient@example.com`**— 受信者のアドレスに置き換えます。アカウントがサンドボックスにまだある場合は、このアドレスを使用前に確認する必要があります。詳細については、「[本稼働アクセスのリクエスト (Amazon SES サンドボックスからの移行)](request-production-access.md)」を参照してください。検証したアドレスと完全に一致するアドレスを入力してください。
   + **(オプション)`us-west-2`** — 米国西部（オレゴン）以外の地域で Amazon SES を使用する場合は、これを使用する地域に置き換えます。Amazon SES を使用できるリージョンのリストについては、「*AWS 全般のリファレンス*」の「[Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region)」を参照してください。

1. `amazon-ses-sample.rb`を保存します。

1. プログラムを実行するには、`amazon-ses-sample.rb` と同じディレクトリでコマンドプロンプトを開き、**ruby amazon-ses-sample.rb** と入力します

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

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

------
#### [ Python ]

このトピックでは、[AWS SDK for Python (Boto)](https://aws.amazon.com/sdk-for-python/)を使用して Amazon SES 経由で E メールを送信する方法を示します。

**開始する前に、次のタスクを実行します。**
+ **Amazon SES で E メールアドレスを検証する** - Amazon SES で E メールを送信するには、送信者の E メールアドレスを所有していることを検証する必要があります。アカウントが Amazon SES サンドボックスにまだある場合は、受信者の E メールアドレスも検証する必要があります。E メールアドレスを検証するには、Amazon SES コンソールを使用することをお勧めします。詳細については、「[Eメールアドレス ID の作成](creating-identities.md#verify-email-addresses-procedure)」を参照してください。
+ **認証情報の取得 AWS **— SDK を使用して Amazon SES にアクセスするには、 AWS アクセスキー ID と AWS シークレットアクセスキーが必要です。認証情報を取得するには、 AWS マネジメントコンソールの「[セキュリティの認証情報](https://console.aws.amazon.com/iam/home?#security_credential)」のページを参照してください。認証情報の詳細については、「[Amazon SES 認証情報の種類](send-email-concepts-credentials.md)」を参照してください。
+ **Python のインストール** - Python は[https://www.python.org/downloads/](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) ドキュメント](https://boto3.readthedocs.io/en/latest/guide/quickstart.html#installation)を参照してください。このチュートリアルのサンプルコードは SDK for Python のバージョン 1.4.4 でテスト済みです。

**SDK for Python を使用して Amazon SES 経由で E メールを送信するには**

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

   ```
    1. import boto3
    2. from botocore.exceptions import ClientError
    3. 
    4. # Replace sender@example.com with your "From" address.
    5. # This address must be verified with Amazon SES.
    6. SENDER = "Sender Name <sender@example.com>"
    7. 
    8. # Replace recipient@example.com with a "To" address. If your account 
    9. # is still in the sandbox, this address must be verified.
   10. RECIPIENT = "recipient@example.com"
   11. 
   12. # Specify a configuration set. If you do not want to use a configuration
   13. # set, comment the following variable, and the 
   14. # ConfigurationSetName=CONFIGURATION_SET argument below.
   15. CONFIGURATION_SET = "ConfigSet"
   16. 
   17. # If necessary, replace us-west-2 with the AWS Region you're using for Amazon SES.
   18. AWS_REGION = "us-west-2"
   19. 
   20. # The subject line for the email.
   21. SUBJECT = "Amazon SES Test (SDK for Python)"
   22. 
   23. # The email body for recipients with non-HTML email clients.
   24. BODY_TEXT = ("Amazon SES Test (Python)\r\n"
   25.              "This email was sent with Amazon SES using the "
   26.              "AWS SDK for Python (Boto)."
   27.             )
   28.             
   29. # The HTML body of the email.
   30. BODY_HTML = """<html>
   31. <head></head>
   32. <body>
   33.   <h1>Amazon SES Test (SDK for Python)</h1>
   34.   <p>This email was sent with
   35.     <a href='https://aws.amazon.com/ses/'>Amazon SES</a> using the
   36.     <a href='https://aws.amazon.com/sdk-for-python/'> AWS SDK for Python (Boto)</a>.</p>
   37. </body>
   38. </html>
   39.             """            
   40. 
   41. # The character encoding for the email.
   42. CHARSET = "UTF-8"
   43. 
   44. # Create a new SES resource and specify a region.
   45. client = boto3.client('ses',region_name=AWS_REGION)
   46. 
   47. # Try to send the email.
   48. try:
   49.     #Provide the contents of the email.
   50.     response = client.send_email(
   51.         Destination={
   52.             'ToAddresses': [
   53.                 RECIPIENT,
   54.             ],
   55.         },
   56.         Message={
   57.             'Body': {
   58.                 'Html': {
   59.                     'Charset': CHARSET,
   60.                     'Data': BODY_HTML,
   61.                 },
   62.                 'Text': {
   63.                     'Charset': CHARSET,
   64.                     'Data': BODY_TEXT,
   65.                 },
   66.             },
   67.             'Subject': {
   68.                 'Charset': CHARSET,
   69.                 'Data': SUBJECT,
   70.             },
   71.         },
   72.         Source=SENDER,
   73.         # If you are not using a configuration set, comment or delete the
   74.         # following line
   75.         ConfigurationSetName=CONFIGURATION_SET,
   76.     )
   77. # Display an error if something goes wrong.	
   78. except ClientError as e:
   79.     print(e.response['Error']['Message'])
   80. else:
   81.     print("Email sent! Message ID:"),
   82.     print(response['MessageId'])
   ```

1. `amazon-ses-sample.py`で、以下を独自の値に置き換えます。
   + **`sender@example.com`**— Amazon SES で検証した E メールアドレスに置き換えます。詳細については、「[検証済みID](verify-addresses-and-domains.md)」を参照してください。Amazon SES では、E メールアドレスの大文字と小文字が区別されます。検証したアドレスと完全に一致するアドレスを入力してください。
   + **`recipient@example.com`**— 受信者のアドレスに置き換えます。アカウントがサンドボックスにまだある場合は、このアドレスを使用前に確認する必要があります。詳細については、「[本稼働アクセスのリクエスト (Amazon SES サンドボックスからの移行)](request-production-access.md)」を参照してください。検証したアドレスと完全に一致するアドレスを入力してください。
   + **(オプション)`us-west-2`** — 米国西部（オレゴン）以外の地域で Amazon SES を使用する場合は、これを使用する地域に置き換えます。Amazon SES を使用できるリージョンのリストについては、「*AWS 全般のリファレンス*」の「[Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/general/latest/gr/rande.html#ses_region)」を参照してください。

1. `amazon-ses-sample.py` を保存します。

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

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

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

------