技術ブログ

Amazon SESのSMTPインターフェースでメール送信する

2020年8月9日

Amazon SES

前回は Amazon SES で ID の検証を行い、E メールのセットアップを行いました。

Amazon SES
Amazon SESの初期設定 Eメールのセットアップ

Amazon SES(Simple Email Service) が東京リージョンで利用できるようになりました。 Ama ...

今回は SES の SMTP インターフェースを利用して E メールを送信できるようにします。

目次

  1. SES SMTP 認証情報の取得
  2. コマンドラインから SMTP インターフェースで E メールを送信してみる

SES SMTP 認証情報の取得

Amazon SES SMTP インターフェイスを使用した E メールの送信 にある通り、Amazon SES SMTP インターフェイスを利用するには、Amazon SES SMTP のユーザー名とパスワードが必要です。Amazon SES SMTP 認証情報の取得 を参考に SMTP のユーザ名とパスワードを取得します。

リージョンを確認する

まず、右上のメニューをみて「Tokyo」リージョンが選択されていることを確認します。

SMTP ユーザを作成する

つぎに SES の左メニューの「SMTP Settings」をクリックし、「Create My SMTP Credentials」ボタンをクリックします。

Amazon SES SMTP Settings

IAM User Name を確認し「Create」ボタンをクリックします。

Amazon SES Create User for SMTP

SMTP ユーザ名とパスワードをメモする

IAM ユーザが作成されました。「Show User SMTP Security Credentials」をクリックして展開します。

Amazon SES Create User for SMTP

SMTP Username と SMTP Password が表示されます。これはメールを送信するときに使うので、無くさないようにメモしておきます。「Download Credentials」ボタンをクリックしてファイルをダウンロードしても良いです。

Amazon SES Create User for SMTP

作成された IAM ユーザを確認する

さきほどの操作で IAM ユーザが作成されたので確認しておきます。インラインポリシーで、SES のメール送信だけを許可されたユーザができています。

Amazon SES SMTP ユーザ

コマンドラインから SMTP インターフェースで E メールを送信してみる

コマンドラインを使用して Amazon SES SMTP インターフェイスへの接続をテストするを参考に、コマンドラインから E メールの送信をしてみます。

さきほどメモした SMTP Username と SMTP Password を base64 でエンコードして変数に入れます。

Base64EncodedSMTPUserName=$(echo -n "AKIAXXXXXXXXXXXXXXXX" | openssl enc -base64)
Base64EncodedSMTPPassword=$(echo -n "BLkexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" | openssl enc -base64)

以下のように cat コマンドで input.txt ファイルを作成します。メールアドレスなどはご自身のものに置き換えてください。

cat << EOS > input.txt
EHLO karakaram.com
AUTH LOGIN
$Base64EncodedSMTPUserName
$Base64EncodedSMTPPassword
MAIL FROM: sender@karakaram.com
RCPT TO: example@gmail.com
DATA
From: Amazon SES SMTP User <sender@karakaram.com>
To: example@gmail.com
Subject: Amazon SES SMTP Test

This message was sent using the Amazon SES SMTP interface.
.
QUIT
EOS

以下のコマンドで E メールの送信をテストします

openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.ap-northeast-1.amazonaws.com:587 < input.txt

成功すると最後に以下の例のように出力されます。

250 Ok 01060173cc7e3306-07da4e50-b7c4-47de-9e52-6d4d56d2efdc-000000

メールボックスにメールが届いていることも確認しましょう。

WordPress から SES の SMTP インターフェースを利用したメール送信

Amazon SES の SMTP インターフェースを利用してメールが送信できるようになりました。次回は WordPress から SMTP インターフェースを利用してメールを送信できるようにします。

Amazon SES
WordPressでAmazon SESを使ってメールを送信する

WordPress から Amazon SES の SMTP インターフェースを利用して E メールを送信できるようにし ...

-技術ブログ
-

© 2020 karakaram-blog