2016年1月28日木曜日

AWS SESのバウンスメール通知をSNSで受けて、それをSQSと連携させてみた

AWSではSESと呼ばれるメールサービスがあります。Azureで言うところのSendGridみたいな、APIからメールが送れたり、MTAからリレーできたりする便利な奴なんですが、スパムに利用されないように、バウンスメール(ようするに不達で帰ってくるメール)が多いとスパマーと判定されてペナルティを食らうらしい・・・
参考:Amazon SES のバウンスに関するよくある質問

そのための仕組みとして、SESではバウンスメールアドレスを通知する仕組みがあります。
この仕組みを利用して、SNS経由で用意したAPIを叩いてDBの消しこみをする。なんて例が良く出てきます。
たとえばこんなのとか

ただ、当然というか、外部にAPIを晒すという事は、悪戯されたり不正アクセスをされたりするわけで、ちゃんと電子証明書の検証をしないといけない

これはこれで面倒そう・・・・
なので、SNSからさらにSQSを連携させ、バウンスメール処理をキューで処理する仕組みを構築してみました。
キューに貯める事により、複数台のサーバで並列して処理したりできますし、APIを作ったり外部へ晒したりしなくてよいです。

具体的な構築手順は例によってWiKiに記載しています。

今回、あまりAWS SDK for RubyでSQS処理するプログラムを見かけなかったので、作ってみました。
勿論SDKのVer2対応です!!


0 件のコメント:

コメントを投稿