しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

SendGrid のアカウントを環境ごとに使い分ける

SendGrid を使う上で、当然ながら必要なのがアカウントの管理ですが、最近サブユーザー機能に感動したのでもう一度アドベントカレンダーに参加することにしました。

でも、無料アカウントではサブユーザーが使えなかったので内容を少し濁します。

API キーを分ける

最低限やっておきたいこととして、メール送信のためにメインのユーザーアカウントの認証情報を使うのではなく、適切な権限のみを付けた API キーを作成して使いましょう。

今の SendGrid は API キーを使ってメールの送信を行えるので、Web API を使いましょう。

f:id:shiba-yan:20161215215404p:plain

一応 SMTP API でも使えた気がしますが、もう SMTP は捨てて Web API のみにするのが良いです。

SendGrid 公式ブログでも API キーを使うように推奨しています。

API キーを使うといつでも再発行できるので、漏洩した場合でも安心です。

これを機に .NET Framework の SmtpClient も捨ててしまうのも良いと思います。送信されるメールのエンコーディングは UTF-8 固定になりますが、ISO-2022-JP とか考えなくてよいので楽です。

サブユーザーを使う

そして最近感動したサブユーザー機能ですが、これまでは認証情報を別に出来るぐらいの認識しかなかったのですが、アプリケーションの運用で最高に便利な機能でした。

これも SendGrid 公式ブログが詳しく書いているので紹介します。

無料ユーザーは規約で複数作成できないので、サブユーザーで使い分けするのが良いみたいです。

サブユーザーを使うとアクティビティや Event Webhook など、ほぼ全ての機能が分離されていてユーザーごとにメール送信の上限を設定出来たり、本番とステージングで簡単に分けることが出来ます。

ちなみに sendgrid.com では Pro プラン、KKE では Silver プラン以上で使えます。

If you have a Pro plan or higher, you may create up to 15 subusers through your account. If you reach the maximum of 15 and require more subusers, please use the form in the Subuser Management page to request more.

Create and Manage Subusers - SendGrid Documentation | SendGrid

なので本番環境で SendGrid を使う場合には Pro / Silver 以上が必須だと思います。切り替えは楽です。

f:id:shiba-yan:20161215214913p:plain

10 万通からのプランですが、環境ごとにサブユーザーを分けて上限を設定しておくと、開発中の不具合などでメールを大量に送信してしまっても止まるので安心です。

地味にサブユーザーごとに送信する IP アドレスやドメインを設定できるのも良いです。他にもステージングアカウントの場合はフッターを埋め込んだり、使いどころは正直かなり多いと思います。

何気にポータルから簡単にサブユーザーを切り替えられるのもポイント高いです。サブユーザーごとの開封率なども簡単に確認できるので是非使って良さを体験してほしいですね。