目次
はじめに
こんにちは、株式会社エーピーコミュニケーションズの松尾です。
前回の続きです。
前回まででAmazon SESがメールリレーしてメールを送信する構成が完成しています。
今回は、Amazon SESのMail Manager機能を使って、SESが受信したメールをアーカイブする機能を検証してみたいと思います。
ゴール
次の点を目的としていきます。
- Amazon SESのMail Managerの構成要素を作成する
- Mail ManagerのEメールアーカイブを設定できる
トラフィックポリシーの作成
Mail Managerの使用を開始する
Amazon SESのメニューの下の方にMail Managerが追加されています。
画面に少し映っていますが、開始するには「トラフィックポリシー」「ルールセット」「イングレスエンドポイント」の3点を構成することが必要になります。まずはこれを作成していきたいと思います。
ちなみに「設定を開始」を開くと現状のリソース作成状況が表示されます。
トラフィックポリシーを作成
今回は基本的にはメールを通過させたいので、デフォルトアクションを許可に変更して作成していきます。
ルールセットの作成
ルールセットを作成
まずはルールセットを作成し、
ルールを作成する前にルールで指定するアーカイブを設定しておきます。
次にルールを作成していきます。ここでは「送信元アドレスがinfo@ses.awsworkshop.clickの場合、指定のアーカイブを行う」ルールを作成しました。
イングレスエンドポイントの作成
イングレスエンドポイントを作成
イングレスエンドポイントを作成する際に、トラフィックポリシーとルールセットを紐づける形になります。また、イングレスエンドポイントのデプロイによって課金が開始されます。
イングレスエンドポイントを作成するとAレコードが作成されます。
作成されたAレコードの値を、メールの宛先ドメインを管理しているDNSのホストゾーンへ、MXレコードとして登録します。
ここが私は最初分からなかったのですが、MailManager機能は、”ユーザ自身が管理しているドメイン”で受信するメールに対して処置(今回の検証ではアーカイブ)を行うマネージドサービスになるので、自身が管理していないドメインへのメールに対して処理することは出来ない、ものになります。
不特定多数のドメインに対して送信するメールをアーカイブするような使い方は出来ないようです。
メール送信テスト
OpenSSLを使ってメールを送信してみます。
echo -n <SMTPユーザ名> | base64 echo -n <SMTPパスワード> | base64
openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.ap-northeast-1.amazonaws.com:587
AUTH LOGIN <base64でエンコードしたSMTPユーザ名> <base64でエンコードしたSMTPパスワード>
MAIL FROM: info@ses.awsworkshop.click RCPT TO: user@rcvd.awsworkshop.click DATA from:info@ses.awsworkshop.click to:user@rcvd.awsworkshop.click Subject: test1 Test1 . QUIT
250 Okが表示されれば送信出来ているはずです。10分程度待つとマネコンに反映されます。
Eメールアーカイブのコンソール画面で履歴を確認できました。「詳細を表示」からメールの内容も確認できます。
まとめ
今回はAmazon SESのMail Manager機能を使ってみました。
MailManagerの入口となるイングレスエンドポイントにはMXレコードが必要なので、ドメインへのレコード登録が必要であることが分かりました。つまり、用途としてはドメイン管理配下のメールアドレスで受信するメールに対して、アーカイブやSMTPリレーなどのアクションを適用させることを目的としていることが理解できました。
当初は不特定多数の宛先でも使えるようなイメージでしたが目的が違うことが一番の学習になりました。
メールに加えて、DNSの仕組みも関連してくるので理解すべき範囲がなかなか広かったですね。。
おわりに
私達クラウド事業部はAWSなどのクラウド技術を活用したSI/SESのご支援をしております。
また、一緒に働いていただける仲間も募集中です! ご興味持っていただけましたらぜひお声がけください。