未分類

Amazon SES コマンドラインでSMTP接続をテストする

最近はパッケージやSDKが用意されており、SMTPのユーザ名・パスワードを記載すれば、SESを利用できるケースがほとんどです。

今回、SDKを使用しない形での実装だったため、SMTPコマンドを使って接続確認を行いました。

基本的にはAWSのドキュメントの通り進めます。

前提

クライアントサーバ CentOS7

接続テスト

事前準備

以下手順でSES用のSMTPユーザ名、パスワードを発行します。

Amazon 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


上記でメールが届けば成功です。失敗した場合、エラーコードが返ってくるはずです。

以下を参照して原因を確認します。

Amazon SES から返される SMTP 応答コード