最近はパッケージやSDKが用意されており、SMTPのユーザ名・パスワードを記載すれば、SESを利用できるケースがほとんどです。
今回、SDKを使用しない形での実装だったため、SMTPコマンドを使って接続確認を行いました。
基本的にはAWSのドキュメントの通り進めます。
前提
クライアントサーバ CentOS7
接続テスト
事前準備
以下手順でSES用のSMTPユーザ名、パスワードを発行します。
発行したユーザ・パスワードをbase64でエンコードします。
SMTPで認証する際に必要になります。
echo -n “SMTPユーザ名" | openssl enc -base64
XXXXXX
echo -n “SMTPパスワード" | openssl enc -base64
YYYYYY
接続テスト
opensslコマンドを使って、Amazon SESに接続します。
openssl s_client -starttls smtp -crlf -connect email-smtp.us-east-1.amazonaws.com:587
DNS名はAmazon SESを構築したリージョンのものをご指定ください。
米国東部(バージニア北部) | email-smtp.us-east-1.amazonses.com |
---|---|
米国西部 (オレゴン) | email-smtp.us-west-2.amazonses.com |
アジアパシフィック (ムンバイ) | email-smtp.ap-south-1.amazonses.com |
アジアパシフィック (シドニー) | email-smtp.ap-southeast-2.amazonses.com |
欧州 (フランクフルト) | email-smtp.eu-central-1.amazonses.com |
欧州 (アイルランド) | email-smtp.eu-west-1.amazonses.com |
※2019年12月時点、リージョンは増える可能性あり
以下、コマンドを実行してきます。
EHLO サーバ名
AUTH LOGIN
SMTPユーザ名(Base64エンコードしたもの)
SMTPパスワード(Base64エンコードしたもの)
MAIL FROM: test@example.com //送信元メールアドレス、SESで承認されているもの
RCPT TO: sender@example.com //宛先
DATA
From: Sender Name //送信元の名前
To: sender@example.com //宛先
Subject: Amazon SES SMTP Test
This message was sent using the Amazon SES SMTP interface.
.
QUIT
上記でメールが届けば成功です。失敗した場合、エラーコードが返ってくるはずです。
以下を参照して原因を確認します。