Fax着信通知をAWSのSESメールで受け取りLambdaを起動してみた

この記事は「スパムFAXを画像解析+機械学習でブロックしてみた」の全6回のシリーズ記事の第1回です。

はじめに

こんにちは、hacknoteのr.katoです。

前回、【連載】スパムFAXを画像解析+機械学習でブロックしてみたで全体の流れを紹介しました。

その中で、今回はFax着信通知をトリガーにLambdaを起動した話を紹介していきます。

Townで使用しているWeb上にあるFaxは着信があると指定したメールアドレスに通知が来るようになっています。

このメールを検知し、もしFAXメールだった場合にはLambdaを実行できるようにするため、SESの設定をしました。

設定したこと

  1. SES用ドメイン設定
  2. SES受信時の挙動設定

1. SES用ドメイン設定

まずサービスのRoute53を開きます。

その後、Hosted Zonesにアクセスし、次の赤枠にあるドメインをクリックします。(今回は事前に作成してあった物を利用しました)

そして、Create Record Setをクリックします。

すると次の画面が右側に出て来ますので、Nameは任意のもの、TypeはMX-Mail exchenge、Valueは今回北米リージョンを使用するのでinbound-smtp.us-east-1.amazonaws.comを入力します。他のリージョンは以下の表を参考にしてください。

リージョン受信用SMTPエンドポイント
米国東部 (バージニア北部)inbound-smtp.us-east-1.amazonaws.com
米国西部 (オレゴン)inbound-smtp.us-west-2.amazonaws.com
EU (アイルランド)inbound-smtp.eu-west-1.amazonaws.com

2. SES受信時の挙動設定

Lambda

事前にSESのメール受信をトリガーに叩きたいLambda関数を北米リージョンで作成し、ARNを控えておきます。
今回はただ実行させるだけなのでロールはなんでも構わないです。

SES

そして、サービスのSESを開きます。するとSESはリージョンが3つしかないのでどのリージョンにするか聞かれると思います。今回は北米リージョンを使用しました。
そしてRule Setsをクリックし、Create a Rule Setをクリックし、任意の名前を入力し次へ進みます。

次の画面でCreate Ruleをクリックします。

次の画面で1.SES用ドメイン設定で設定したドメインを入力し次へ進みます。

すると、メール受信時にどのような動作をするか聞かれますので、Lambdaを選択します。

そして実行したいLambdaのARNを入力し次へ進みます。

するとRuleの名前を聞かれるので任意の名前を入力して次に進みます。

最初の画面に戻って来ますので、今回作成したRule Setを選択し、Set as Active Rule Setをクリックします。

おわりに

これでSESメール着信時にLambdaが実行されるようになりました。

次回は「【第2回】LambdaでEC2インスタンス内のプログラムを実行してみた」をしていきたいと思います。

▼Faxのスパム分類シリーズ記事(全6回)