SESのSMTPを利用してOpenSSLコマンドでメール送信

投稿者: | 2018年9月25日

Amazon SESのSMTPを利用してメールを送信する方法です。
まずはSESのSMTPを設定をします。
設定といっても認証情報を作成するだけでSMPTサーバ自体は共有のものを使用します。
SESのメニューから「SMTP Setting」を選択して「Create My SMTP Credentials」のボタンを押します。

IAMユーザー名を指定して作成ボタンを押します。
デフォルトで設定されている値でも構いません。

認証情報が作成されますのでダウンロードしておきます。
続いてメールアドレスを登録します。
ここで登録するメールアドレスは送信元に設定するアドレスになります。

メニューから「Email Addresses」を選択して「Verify a New Email Adress」のボタンを押します。
メールアドレスを入力し、検証ボタンを押すとアドレスが登録され確認用のメールが送信されます。
メール本文にあるリンクを開くとメールアドレスが検証済み(verified)となります。
ここまででAWS側の設定が完了です。
続いてメールの送信を行います。
メールの送信(SMTPサーバへの転送)はOpenSSLのコマンドで行います。
まずはメール本文及び認証情報記述したテキストを作成します。

$ vi mail
EHLO 送信元ホスト名
AUTH LOGIN
アクセスキー
シークレット
MAIL FROM: 送信先メールアドレス
RCPT TO: 送信元メールアドレス
DATA
From: Sender Name <送信先メールアドレス>
To: 送信元メールアドレス
Subject: メールタイトル
メール本文
.
QUIT

送信元ホスト名は送信元メールアドレスのドメインを設定します。
アクセスキーとシークレットキーは先ほど作成した認証情報のものになります。
また、アクセスキーとシークレットキーはbase64にエンコードしたものを記述します。
ここまで準備できればOpenSSLのコマンドでメールを送信することができます。

$ openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-east-1.amazonaws.com:587 < mail

今回、SMTPサーバを安価で用意する必要があったためSESを利用しました。
ちなみに商用システムとして使用するには信頼性(ドメインの)がないためAWS側も推奨してはいないようです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA