Amazon SESを利用してメールを送る方法などを過去2回に渡ってご紹介してきました。

[過去記事]
Amazon SESでメール配信を行う
[PHP]AWS SDK for PHPを使ってAmazon SESでメールを送る方法 

今回はメール配信システムを実装する上で重要な要素の1つであるバウンスメール(配信エラーとなったメールのこと)の通知をAmazon SNS(Simple Notification Service)を利用してメールで通知する方法をご紹介したいと思います。長くなるので分けて投稿します。今回はバウンスメールについてです。次回はメールで受信する方法(6/17追記)をご紹介します。

バウンスメールとは

まずはバウンスメールの扱いの重要性について説明しておきたいと思います。バウンスメールは送信しようとしたけど、何らかの原因(宛先不明、相手側のメールサーバのダウンなど)により、相手にメールが届かなかったことを通知するためのメールです。

皆さんもご経験があると思いますが、MAILER-DAEMON@で始まるアドレスからメールを受信したことがありませんか?携帯電話で相手が機種変更や、MNPなどでメールアドレスを変更していたりすると、このようなエラーメールが返ってきた事があると思います。これがバウンスメールです。

バウンスメールの処理の重要性

バウンスメールはメールを配信するシステムを作成する場合は扱いが重要になってきます。手動でメールを送信している分には特に問題ないのですが、メールマガジンなどのように定期的にメールを配信するサービスを行なっている場合、毎回宛先不明のアドレスに対してメールを送信していると、スパムメールを送っていると判定され、受信ブロックをされてしまう可能性があります。特に携帯電話向けの配信は注意が必要です。一旦受信ブロック対象にされてしまうと、解除してもらうのも一苦労だそうです。

したがって、バウンスメールとなったメールアドレスに対しては次回以降配信を行わないなどの措置を取る必要があります。これをメール配信先のスクリーニングを行うと言います。

Amazon SNSは便利な通知サービス

これまでにご紹介したAmazon SESはバウンスメールを通知してくれるサービスとしてAmazon SNSを利用することができます。SESとSNSは連携することができ、SNSの通知をトリガにメール配信先のスクリーニングを行うといった処理を簡単に実装することができるようになります。

利用料金は基本料金は毎月一定枠までは無料で利用できます。SNSリクエストは毎月100万件まで無料でその後は100万件毎に0.50ドル(US)、メール通知が1000通まで無料で、その後は10万件毎に2ドル(US)と非常に低価格で利用することができます。通常の利用であれば、ほぼ無料です。

次回はSESのバウンスメールの通知をAmazon SNSで受信する方法です。