メニュー
Amazon Simple Email Service
開発者ガイド

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

以下の手順では、Eclipse IDE for Java EE DevelopersAWS Toolkit for Eclipse を使用して AWS SDK プロジェクトを作成し、Java コードを変更して 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 での認証情報の使用」を参照してください。

  • Eclipse のインストール – Eclipse は 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 を参照してください。このチュートリアルのコードはバージョン 2.3.1 の AWS Toolkit for Eclipse でテスト済みです。

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

手順

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

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

  1. 以下のステップを実行し、Eclipse で AWS Java プロジェクトを作成します。

    1. Eclipse を起動します。

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

    3. [New AWS Java Project] ダイアログボックスで、以下の操作を行います。

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

      2. [AWS SDK for Java Samples] で [Amazon Simple Email Service JavaMail Sample] を選択します。

      3. [Finish] を選択します。

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

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

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

    package com.amazonaws.samples; import java.io.IOException; import com.amazonaws.regions.Regions; import com.amazonaws.services.simpleemail.AmazonSimpleEmailService; import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClientBuilder; import com.amazonaws.services.simpleemail.model.Body; import com.amazonaws.services.simpleemail.model.Content; import com.amazonaws.services.simpleemail.model.Destination; import com.amazonaws.services.simpleemail.model.Message; import com.amazonaws.services.simpleemail.model.SendEmailRequest; public class AmazonSESSample { // Replace sender@example.com with your "From" address. // This address must be verified with Amazon SES. static final String FROM = "sender@example.com"; // Replace recipient@example.com with a "To" address. If your account // is still in the sandbox, this address must be verified. static final String TO = "recipient@example.com"; // The configuration set to use for this email. If you do not want to use a // configuration set, comment the following variable and the // .withConfigurationSetName(CONFIGSET); argument below. static final String CONFIGSET = "ConfigSet"; // The subject line for the email. static final String SUBJECT = "Amazon SES test (AWS SDK for Java)"; // The HTML body for the email. static final String HTMLBODY = "<h1>Amazon SES test (AWS SDK for Java)</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-java/'>" + "AWS SDK for Java</a>"; // The email body for recipients with non-HTML email clients. static final String TEXTBODY = "This email was sent through Amazon SES " + "using the AWS SDK for Java."; public static void main(String[] args) throws IOException { try { AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder.standard() // Replace US_WEST_2 with the AWS Region you're using for // Amazon SES. .withRegion(Regions.US_WEST_2).build(); SendEmailRequest request = new SendEmailRequest() .withDestination( new Destination().withToAddresses(TO)) .withMessage(new Message() .withBody(new Body() .withHtml(new Content() .withCharset("UTF-8").withData(HTMLBODY)) .withText(new Content() .withCharset("UTF-8").withData(TEXTBODY))) .withSubject(new Content() .withCharset("UTF-8").withData(SUBJECT))) .withSource(FROM) // Comment or remove the next line if you are not using a // configuration set .withConfigurationSetName(CONFIGSET); client.sendEmail(request); System.out.println("Email sent!"); } catch (Exception ex) { System.out.println("The email was not sent. Error message: " + ex.getMessage()); } } }
  5. AmazonSESSample.java で、以下を独自の値に置き換えます。

    重要

    E メールアドレスでは、大文字と小文字は区別されます。確認したアドレスと完全に一致することを確認してください。

    • SENDER@EXAMPLE.COM – 「From」 E メールアドレスに置き換えます。このアドレスを確認してから、プログラムを実行してください。詳細については、「Amazon SES の ID の検証」を参照してください。

    • RECIPIENT@EXAMPLE.COM – 「To」 E メールアドレスに置き換えます。アカウントがサンドボックスにまだある場合は、このアドレスを使用前に確認する必要があります。詳細については、「Amazon SES サンドボックス外への移動」を参照してください。

    • US_WEST_2 – これを接続先の Amazon SES エンドポイントの AWS リージョンに設定します。サンドボックスステータス、送信制限、Amazon SES ID 関連の設定は、指定された AWS リージョンに固有のものです。Amazon SES をセットアップする AWS リージョンを必ず選択してください。この例では、米国西部 (オレゴン) リージョンを使用します。Amazon SES がサポートするその他のリージョンの例には、US_EAST_1 と EU_WEST_1 があります。Amazon SES がサポートするすべての AWS リージョンのリストは、「リージョンと Amazon SES」を参照してください。

  6. 保存 AmazonSESSample.java.

  7. プロジェクトを構築します。[Project]、[Build Project] の順に選択します。

    注記

    このオプションが無効の場合、自動構築が有効になっている可能性があります。その場合は、このステップをスキップします。

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

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

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

このページの内容: