Amazon Simple Email Service
開発者ガイド

コマンドラインを使用し、Amazon SES SMTP インターフェイスを介して E メールを送信する

OpenSSL と呼ばれる一般的なユーティリティーを使用して、コマンド行から Amazon SES SMTP インターフェイスと対話できます。ほとんどの場合は、OpenSSL を使用して SMTP インターフェイスに接続する機能をテストします。ただし、OpenSSL を使用して、Amazon SES を使用して E メールを送信する独自のアプリケーションを作成することもできます。

OpenSSL はオープンソースのユーティリティ、およびすべてのオペレーティングシステムと互換性があります。これは、Linux および MacOS のほとんどのバージョンにデフォルトで含まれており、Windows 上で実行するようにコンパイルできます。OpenSSL の詳細については、https://www.openssl.org を参照してください。

前提条件

OpenSSL を使用して Amazon SES SMTP インターフェイスに接続するには、まず SMTP 認証情報を取得する必要があります。

重要

SMTP 認証情報は、スタンダードの AWS の認証情報とは異なります。SMTP 認証情報を取得する方法の詳細については、「Amazon SES SMTP 認証情報を取得する」を参照してください。

SMTP 認証情報を取得した後で、base64 エンコードを使用してそれらをエンコードする必要があります。

base64 を使用して SMTP ユーザー名とパスワードをエンコードするには

  1. コマンドラインで、次のコマンドを入力して SMTP ユーザー名をエンコードして、 SMTPUsername をお使いの SMTP ユーザー名に置き換えます。

    echo -n "SMTPUsername" | openssl enc -base64

    このコマンド出力を書き留めます。

  2. コマンドラインで、次のコマンドを入力して SMTP パスワードをエンコードして、 SMTPPassword をお使いの SMTP パスワードに置き換えます。

    echo -n "SMTPPassword" | openssl enc -base64

    このコマンド出力を書き留めます。

Amazon SES SMTP インターフェイスへの接続のテスト

OpenSSL で Amazon SES SMTP インターフェイスに接続するには、ポート 587 で STARTTLS を使用し、ポート 465 で SSL を使用する 2 つの方法があります。どちらのオプションも同じ機能を提供します。どちらを選択するかわからない場合は、ポート 587 で STARTTLS を使用することをお勧めします。

STARTTLS (Port 587)SSL (Port 465)
STARTTLS (Port 587)

STARTTLS を使用して SMTP インターフェイスに接続するには

  • コマンドラインで、次のコマンドを入力して Amazon SESSMTP サーバーに接続します。

    openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587

    注記

    email-smtp.us-west-2.amazonaws.com を自分の AWS リージョンの Amazon SES SMTP エンドポイントの URL に置き換えます。詳細については、「リージョンと Amazon SES」を参照してください。

    正常に接続された場合は、次のような出力が表示されます。

    depth=1 C = US, O = Symantec Corporation, OU = Symantec Trust Network, CN = Symantec Class 3 Secure Server CA - G4 250 Ok

    約 10 秒間何もしないと、接続は自動的に終了します。

SSL (Port 465)

SSL を使用して SMTP インターフェイスに接続するには

  • コマンドラインで、次のコマンドを入力して Amazon SESSMTP サーバーに接続します。

    openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465

    注記

    email-smtp.us-west-2.amazonaws.com を自分の AWS リージョンの Amazon SES SMTP エンドポイントの URL に置き換えます。詳細については、「リージョンと Amazon SES」を参照してください。

    正常に接続された場合は、次のような出力が表示されます。

    depth=1 C = US, O = Symantec Corporation, OU = Symantec Trust Network, CN = Symantec Class 3 Secure Server CA - G4 220 email-smtp.amazonaws.com ESMTP SimpleEmailService-2638499997 QSByYW5kb20gc3RyaW5n

    約 10 秒間何もしないと、接続は自動的に終了します。

Amazon SES SMTP インターフェイスを使用した OpenSSL による E メールの送信

E メール送信者 (クライアント) が SMTP サーバーに接続すると、クライアントはスタンダードなリクエストのセットを発行し、サーバーは各リクエストにスタンダードのレスポンスで応答します。この一連のリクエストとレスポンスは SMTP 対話と呼ばれます。OpenSSL を使用して Amazon SESSMTP サーバーに接続すると、サーバーは SMTP 対話が発生することを予想します。

この例では、すべてのクライアントのリクエストをテキストファイルに追加し、そのファイルを前のセクションで示した OpenSSL コマンドの入力の 1 つとして使用します。

STARTTLS (Port 587)SSL (Port 465)
STARTTLS (Port 587)

SMTP インターフェイスを使用してコマンドラインから E メールを送信するには

  1. テキストエディタで新規ファイルを作成します。ファイルに次のコードを貼り付けます。

    EHLO example.com AUTH LOGIN Base64EncodedSMTPUserName Base64EncodedSMTPPassword MAIL FROM: sender@example.com RCPT TO: recipient@example.com DATA X-SES-CONFIGURATION-SET: ConfigSet From: Sender Name <sender@example.com> To: recipient@example.com Subject: Amazon SES SMTP Test This message was sent using the Amazon SES SMTP interface. . QUIT
  2. 前のステップで作成したファイルを次のように変更します。

    • example.com を送信ドメインに置き換えます。

    • Base64EncodedSMTPUserName をお使いの base64 エンコード SMTP ユーザー名に置き換えます。

    • Base64EncodedSMTPPassword をお使いの base64 エンコード SMTP パスワードに置き換えます。

    • sender@example.com を送信元 E メールアドレスに置き換えます。この ID は検証する必要があります。

    • recipient@example.com を送信先アドレスに置き換えます。Amazon SES アカウントがサンドボックスにまだある場合は、このアドレスも検証済みである必要があります。

    • ConfigSet を、この E メールを適用する設定セットの名前に置き換えます。

      注記

      設定セットを使用しない場合は、「X-SES-CONFIGURATION-SET」で始まる行全体を削除します。

  3. input.txt という名前でファイルを保存します。

  4. コマンドラインから、以下のコマンドを入力します。

    openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-west-2.amazonaws.com:587 < input.txt

    注記

    email-smtp.us-west-2.amazonaws.com を自分の AWS リージョンの Amazon SES SMTP エンドポイントの URL に置き換えます。詳細については、「リージョンと Amazon SES」を参照してください。

    メッセージが送信されると、次のような出力が表示されます。

    250 Ok 01010160d7de98d8-21e57d9a-JZho-416c-bbe1-8ebaAexample-000000

    250 Ok に続く数字の文字列とテキストは、E メールのメッセージ ID です。

    注記

    メッセージが送信された後、接続されたままになることがあります。その場合は、約 10 秒間何もしないと接続は自動的に終了します。

SSL (Port 465)

SMTP インターフェイスを使用してコマンドラインから E メールを送信するには

  1. テキストエディタで新規ファイルを作成します。ファイルに次のコードを貼り付けます。

    EHLO example.com AUTH LOGIN Base64EncodedSMTPUserName Base64EncodedSMTPPassword MAIL FROM: sender@example.com RCPT TO: recipient@example.com DATA X-SES-CONFIGURATION-SET: ConfigSet From: Sender Name <sender@example.com> To: recipient@example.com Subject: Amazon SES SMTP Test This message was sent using the Amazon SES SMTP interface. . QUIT
  2. 前のステップで作成したファイルを次のように変更します。

    • example.com を送信ドメインに置き換えます。

    • Base64EncodedSMTPUserName をお使いの base64 エンコード SMTP ユーザー名に置き換えます。

    • Base64EncodedSMTPPassword をお使いの base64 エンコード SMTP パスワードに置き換えます。

    • sender@example.com を送信元 E メールアドレスに置き換えます。この ID は検証する必要があります。

    • recipient@example.com を送信先アドレスに置き換えます。Amazon SES アカウントがサンドボックスにまだある場合は、このアドレスも検証済みである必要があります。

    • ConfigSet を、この E メールを適用する設定セットの名前に置き換えます。

      注記

      設定セットを使用しない場合は、「X-SES-CONFIGURATION-SET」で始まる行全体を削除します。

  3. input.txt という名前でファイルを保存します。

  4. コマンドラインから、以下のコマンドを入力します。

    openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465 < input.txt

    注記

    email-smtp.us-west-2.amazonaws.com を自分の AWS リージョンの Amazon SES SMTP エンドポイントの URL に置き換えます。詳細については、「リージョンと Amazon SES」を参照してください。

    メッセージが送信されると、次のような出力が表示されます。

    250 Ok 01010160d7de98d8-21e57d9a-JZho-416c-bbe1-8ebaAexample-000000

    250 Ok に続く数字の文字列とテキストは、E メールのメッセージ ID です。

    注記

    メッセージが送信された後、接続されたままになることがあります。その場合は、約 10 秒間何もしないと接続は自動的に終了します。