AWS SES + SNS メールイベントの通知について(後編)

Posted on 2018年12月3日 Under AWS 0 Comments
Pocket
LINEで送る

aws-sns

もう12月です。2018年もあっという間です!
フクロウラボ若杉です!

前回の続き、SES(Simple Email Service)でのメール送信から、送信したメールに対するイベントをSNS(Simple Notification Service)を使って通知するまでについて書いてみたいと思います。

前回の記事をご覧になりたい方は、下記になります。

AWS SES + SNS メールイベントの通知について(前編)

前回では、SESの設定までご説明したと思いますので、今回はSNSについて書いていきます。

 

SESのメールイベントに送信先について

まずSESのメールイベントですが、下記の3つのサービスへ送信することができます。

  • CloudWatch
  • Kinesis Data Firehose
  • SNS

メールイベントをどう扱いたいかによって、どのサービスへ送信したいかを決めれば良いと思います。

今回は、送信した全てのバウンスメールのメールアドレスなどの情報を割とカジュアルに把握しておきたいので、

SNSへ送信し、受け取ったをメール送信するようにしたいと思います。

 

メールイベントをSNSへ流すためのSESの設定について

送信したメール毎のイベントをSNSへ送るための、SESのコンパネ上での設定は、2つの方法でできます。

  1. Configuration Setsから設定する方法
    Configuration Sets

    Configuration Sets

  2. DomainsもしくはEmail AddressesのNotificationsから設定する方法
Domains/Email AddressesのNotifications

Domains/Email AddressesのNotifications

基本的には、送信、拒否、バウンス、苦情、配信、オープン、クリック、レンダリング失敗のすべてのイベントに対して細かく設定をしたい場合は1の方法になります。

ただ、バウンス、配信、送信のイベントをSNSに送信するということに対してだけであれば、2の方法で非常に簡単に設定できてしまいます。

今回はバウンスイベントを把握したいので、2の方法で行ってみたいと思います。

 

SNSでの設定

SES側の設定を行う前に、まず、SNS側で通知設定を作成しておきます。

SNSのコンパネのTopicsから”Create new topics”ボタンを押して、新たなトピックを作成します。

Create new topic

Create new topic

Topic name

Topic name

ここでは、とりあえず、”Topic name”のみを入力でOKです。

そうすると、下記のようにトピックリストが表示されるので、リンクをクリックします。

Topics

Topics

ARNのリンクテキストをクリックします。すると、トピックの詳細画面が表示されます。

“Subscriptions”というものを作成しなければなりません。

これは、『このトピックに対する通知アクション』と考えるとわかりやすいかもです。

SNSから行える通知アクションの種類は、いくつかあります。

sns-how-works

docs.aws.amazon.comより引用

上記の図のようなプロトコルに対応しており、プロトコルの選択とそのエンドポイントを設定することにより、認知の通知が行えます。

Create subscription

Create subscription

“Endpoint”に通知の受け取り先メールアドレスを入力し、”Create subscription”で、”Subscription”が作成されます。

さらに通知先を追加したい場合は、同様に”Create subscription”ボタンから追加できます。

ここまでで、SNSの設定は完了です。

 

SES側での設定

ここからは、またSESのコンパネに戻って設定します。

ドメイン単位とメールアドレス単位で設定ができます。

今回はメールアドレス単位で行いますので、”Email Addresses”からメールアドレスをクリックして、詳細を開きます。

 

Email address details

Email address details

さらに、”Notifications”を展開し、”Edit Configuration”ボタンをクリックします。

Notifications

Notifications

すると、下記のようなモーダルウィンドウが開きます。

Edit Notification Configuration

Edit Notification Configuration

“SNS Topic Configuration”の”Bounces:”のプルダウンで、先程SNSで作成したトピックが選択できようになっています。

SNS Topic Configuration

SNS Topic Configuration

バウンス以外のメールイベントについても、設定ができます。

それぞれ、下記の意味のイベントになります。

  • Bounces(バウンス):受取人のメールサーバーにより、メールは完全に拒否されました。このイベントはハードバウンスに該当します。ソフトバウンスは、Amazon SES が一定期間にわたって再試行してもメールを配信できなかった場合に限ります。
  • Complaints(配信):Amazon SES が受取人のメールサーバーに E メールを正常に送信しました。
  • Deliveries(送信):Amazon SES に対する呼び出しが成功しました。

ここで、先程、SNSで作成したトピックを選択して、”Save Config”ボタンをクリックして保存すれば、設定は完了です。

 

動作チェック

では、実際にメール送信&バウンスメールを発生させて、想定通りの挙動になっているか確認してみましょう。

下記のようにテスト用メールを送信することができます。

Send Test Email

Send Test Email

バウンスメールを人工的に発生させるためのメールアドレスをアマゾンが用意してくれています。

その他、各イベントをシミュレートできるメールアドレスは、下記から確認できます。

Amazon SES での E メール送信のテスト

“Send Test Email”ボタンでメール送信しましょう。

SNSで設定したエンドポイントにメールが受信できていれば、テストは完了です。

 

以上、SES+SNSで送信メールのイベントの通知を任意のメールアドレスで受け取る設定をご紹介しました。

SESはメール送信だけじゃなく受信もでき、同様にSNSトピックに送信できます。一旦、SNSへ投げてしまえば、他のAWSのサービスへシームレスに連携できるので、いろいろできます。ぜひ使ってみてください〜。

ではまた!

Pocket
LINEで送る