メールの送信元IPアドレスを操るIPマネジメント機能

28175574_s

はじめに

2015年7月7日、SendGridの新ポータルがリリースされました。これに伴い、以前からベータ版として公開されていたIPマネジメント機能が正式リリースされました。今回は、IPマネジメント機能についてご紹介します。

IPマネジメントとは?

メールの到達率を決める重要な指標の一つにIPレピュテーションがあります。この指標のキーとなるのが送信元IPアドレスです。そこで、メールを確実に届けるためには、固定IPアドレスを利用した上で、IPウォームアップ、送信元IPアドレスの使い分け、といった運用が重要になってきます。

SendGridは、IPウォームアップや送信元IPアドレスの制御用にIPマネジメント機能を提供しています。この機能の利用は、SMTPリレーやAPIなど、ある程度の開発を前提としています。それでは、各機能の詳細を見て行きましょう。

自動IPウォームアップ

アカウントに割り当てられたばかりの新しいIPアドレスは、レピュテーションが構築されていないため、いきなり大量のメールを送信するとスロットリングやブロック(拒否リスト掲載による受信拒否)が発生する可能性があります。このため、レピュテーションを構築するために、メールの送信量を徐々に増やす「IPウォームアップ」という作業が必要になります。

IPウォームアップ用の送信計画の立案、実行には手間がかかります。SendGridではこの手間を省くために自動的にIPウォームアップを行う機能を提供しています。アカウントに割り当てられているIPアドレスをあらかじめウォームアップ設定した上でメールを送信すると、単位時間あたりの送信通数の閾値を超えた分が自動的にウォームアップ済みの共有IPアドレスから送信されます。こうすることで、ウォームアップ対象のIPアドレスから送信されるメールの通数を徐々に増やすプロセスを自動化することができます。

以下の例では、指定したIPアドレス(000.00.00.0)が自動的にウォームアップ設定され、開始時刻(start_date)からウォームアップ日数が起算されます。

$ curl -H "Content-Type: application/json" -u USERNAME -X POST -d ‘{"ip": "000.00.00.0"}’ https://api.sendgrid.com/v3/ips/warmup
$ {"ip": "000.00.00.0", "start_date”: 1409616000}

もちろん、メールを送信しないとウォームアップされませんので、メールを送信し続けることが重要です。

送信元IPアドレスの使い分け

送信元IPアドレスは、マーケティングメールとトランザクションメールで使い分けをするのがよくあるパターンです。

  • マーケティングメール:スロットリングやブロックのリスクが比較的高い一斉配信。必要に応じてIPアドレスを多めに用意しておく。
  • トランザクションメール:業務上クリティカルな通知であることが多いため、マーケティングメールのようなリスクの高いメール送信とはIPアドレスを使い分ける。
プールの管理

メールの送信元IPアドレスは「プール」という単位でグループ管理できます。後述しますが、ここで作成したプールを指定してメールを送信することで、送信元IPアドレスを指定できます。プールに複数のIPアドレスを所属させておくと、プール内で使用されるIPアドレスが自動的にローテーションされます。

以下の手順でプールを管理します。

  • プールを作成する
    プールには利用目的に応じた名前(”transactional”、”marketing”など)をつけておくと管理しやすくなります。

    $ curl -H "Content-Type: application/json" -u USERNAME -X POST -d ‘{"name": "marketing"}’  https://api.sendgrid.com/v3/ips/pools
    $ {"name": "marketing"}
    
  • プールにIPアドレスを所属させる
    アカウントに割り当てられているIPアドレスをプールに所属させます。アカウントに割り当てられているIPアドレス自体を追加することもできます。

    $ curl -H "Content-Type: application/json" -u USERNAME -X POST -d ‘{"ip": "000.00.00.0"}’ https://api.sendgrid.com/v3/ips/pools/marketing/ips
    $ {
        "ip": "000.00.00.0",
        "pools": ["marketing"],
        "start_date”: 1409616000,
        "warmup": true
      }
    
プールを指定したメール送信

プールを指定してメール送信するには、SMTP APIを利用します。以下のようなJSON文字列でプール名を指定します。

{"to": ["test@destination.com"],"ip_pool": "marketing"}

さいごに

いかがでしたか?送信量がそれほど多くない場合はそれほど気にする必要はありませんが、いざという時に使える手法です。

「APIを利用して自動IPウォームアップ設定するのはちょっと敷居が高そう。。。」という方は、IP Warmupスケジュールを参考にして自前のIPウォームアップ計画を立ててみてください。このテーブルにはSendGridがこれまでに蓄積したノウハウが詰め込まれています!

参考記事