SendGrid Advent Calendar 2016の9日めの記事です。
先日、Amazon SESで固定IPアドレスが使えるようになったとアナウンスがありましたがメール配信時に固定IPアドレスが何故必要になるのでしょうか。今回はそのあたりをまとめてみたいと思います。
送信元IPアドレス
通常メールが届くまでは以下のような経路を通ります。(複数のサーバを経由することもありますがシンプルにしています)
送信元IPアドレスというのは図で言うところの送信元サーバのIPアドレスで、メールヘッダのReceived:で確認することが可能です。Gmailに届いていたメールのヘッダを見てみると以下のようになっていました。
Received: from sender.example.com (sender.example.com. [xxx.xxx.xxx.xxx])
by mx.google.com with ESMTPS id xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
for <hoge@hoge.com>
このxxx.xxx.xxx.xxxが送信元IPアドレスです。
初日に紹介したIPレピュテーションはこの送信元IPアドレスのもつレピュテーションを意味しています。
固定 or 共有 IPアドレス
固定IPアドレスを使って送信するということはこれを固定し必ず同じIPアドレスから送信するということです。
逆に固定IPアドレスでない場合は他の人と同じIPアドレスを共有して利用します(共有IPアドレス)。共有IPアドレスの送信形式の場合は、複数のIPアドレスをプールしておき、プール内のアドレスのいずれかがランダムに割り当てられて送信するというケースが多いようです。なので毎回送信元IPアドレスが変わります。
それぞれのメリット・デメリット
それぞれメリットデメリットがあるので、送信用途にあわせて固定か共有かを選択する必要があります。
固定IPアドレス
レピュテーションを自分でコントロールすることができ、他人の影響を一切受けません (ウォームアップは必要ですが)。
多くのISPでは時間あたりに同一IPアドレスから受信できる通数に制限を設けていますが、この制限がきつい場合は固定IPアドレスを追加する必要があります。
ちなみに、大体1つのIPアドレスから1日で送信可能なメールの量はSendGridは40万通程度、Mandrillは50万通程度と見ているようなので、この辺を超えてくると固定IPアドレスを複数使う必要が出てきます。
共有IPアドレス
健全な送信者のみで共有されているならばレピュテーションが高くなっているはずなので、いきなり大量の送信が可能ですし、少量しか送らないような場合も既に構築されたレピュテーションに乗っかることができるので、例えば固定IPを使っているが送信実績が殆ど無いという状態になるよりは共有IPを使うほうが安全かもしれません。
また、毎回送信元IPが変わるので、時間あたりの受信上限がきびしいISPへの送信がやりやすくなります。
ただ、もし同じIPを利用しているユーザがバウンスやスパム報告を大量に発生させ共有IPアドレスのレピュテーションが下がったときにはその影響を受けてしまいます。スパマーでなくても古いリストを使ったり、テストをミスったりすると大量にバウンスしてしまうので、割りとよくある話だと思います。それをどうコントロールするかがサービス提供社の腕の見せ所ですね。
SESはバウンス、苦情の管理を非常に厳しくしているのできっちりしている印象です。(ここではバウンス率5%、苦情率0.1%を下回るよう推奨しています)
SendGridも異常だと判断した場合はアカウントをサスペンドすることがあります。
おいくら?
ユーザに提供する前にはクリーニングをする必要がありますし、どのサービスでもやっぱりある程度のお金がかかります。以下は全部月額
SendGrid:2,500円 Silverプラン以上はデフォルトで固定IPアドレスを1つ付与
Amazon SES:24.95 USD
mailgun:$59.00
Mandrill:$29.95
まとめ
固定IPアドレスを利用してうれしいのは、レピュテーションを自分で独占、他者の影響を受けない、というところに尽きると思います。日に数万通単位での送信をしている場合は積極的に利用していきたいですね。
Happy Sending!!