箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

RailsでSendGridのAPIを使用する(1)【アカウント発行・有料プラン契約】

f:id:y_hakoiri:20191102121915j:plain

アカウント発行周りから実装まで網羅的に書かれている記事があまりなかったので、SendGridAPIについてまとめていきます。

やることが多くて多岐にわたるので、何回かに分けて書くことになりそう。

SendGridとは

SendGridは全世界で利用されているメール配信サービスです。 クラウドサービスのためアカウントを作成するだけで即日メールを 送信でき、面倒でコストのかかるメールサーバの構築は不要です。

引用:SendGridとは | SendGrid

メール送信用のサーバーを別途用意しなくても、SendGridのアカウントを発行するだけで好きなドメインからメールを送ることができる。

RailsにはMailerの機能があるのでメール関連の実装は比較的簡単にできるけど、メルマガ配信など大量な処理が必要でアプリケーションに負荷がかかりそうな場合、こういった外部サーバーを使うのが良さそう。

とりあえずざっくり概要

先にざっくりとした概要だけいくつか箇条書きで。

  • プランは8段階から選べる(送信件数/月 で選定)
  • WebAPIを使用する方法とSMTPによる方法がある
  • WebAPIを使用する場合はイチから組み立てるのではなく各言語に対応したライブラリ(gem)を使うと早い

現段階ではこんな感じ。また実装しきってから追加するかも。

ちなみに今回の記事では私が実際に使った WebAPI(およびgem)のパターンで解説していくので、SMTPでやりたい方は途中から参考にならないと思う。

WebAPIとSMTPの違い

WebAPIとSMTPの違いについては以下参照。

SendGrid公式ライブラリと各プログラミング言語で利用できるSMTPライブラリにはどのような違いがありますか? – サポート

トランザクションメールを送信する - ドキュメント | SendGrid

SMTPをちゃんと理解してないけど、RailsのActionMailerはSMTPによるもので、

ActionMailerの設定ファイルで「SendGridを使うよ〜」って書いてあげれば良さげな感じだった。

ただこれだとプロダクト全体のActionMailerがセンドグリッドに向いてしまうので、プロダクトの中の一部機能でのみセンドグリッドを使用したい場合はやっぱりAPIかな。

何からやったら良いのか

とりあえず

  1. アカウントの発行
  2. 料金プランを決定
  3. 支払い情報を登録して有料プランを契約

ここまで。

アカウントの発行

新規会員登録 | SendGrid【日本公式サイト】

流れとしては、無料アカウント発行手続き → 審査 → アカウント有効化 までを経て初めて有料プランの契約ができる。

キャプチャ撮ってなかったのであれだけど、入力項目はだいたい以下のような感じだったと思う

  • 利用目的(どのようなメールを誰に送信するか)
  • 利用するプロダクトのURL
  • 送信元ドメイン
  • 月間送信通数

ちなみに法人として契約する場合、法人もしくはプロジェクト単位で1アカウントのような雰囲気。

入力が完了したらメールが送られてくる

f:id:y_hakoiri:20200317082931p:plain

基本的に返信や対応がめちゃくちゃ早くて神なのだけど、審査中は暇なのでこの辺の作業は出来るだけ早く済ませておくのがオススメ。

料金プランを決定

先述の通り料金プランが8段階あるのでどれにするか決めておく。

価格 | SendGrid

具体的な違いについては↑を見て欲しいのだけど、大きく分けて三段階あって

  • Free
  • Essentials
  • Pro

Freeのみ無料プラン。 EssentialsとProは有料でそれぞれ月間送信通数ごとに少しずつ価格が上がってく感じ。

EssentialsとProの違い

EssentialsとProの違いで大きなところは以下

Proの場合、

  • 固定IPがデフォルトで1つ割り当てられる
  • 固定IPが追加できる(別途料金発生)
  • サブユーザを作成できる
  • 請求書払いに対応

固定IPがなくても送信元ドメインを登録しておけばそのドメインからメールを送ることができるのだけど、毎回異なるIPになるのでプロバイダからの信用度が落ちる(レピュテーションと言うらしい)

固定IPアドレスを利用するメリットは何でしょうか? – サポート

迷惑メールに分類されたりうまく到達しなかったりするのを防ぐためにも、固定IPを持った上でドメインと紐付けて送ってあげるのが良さそう。

そして後から固定IP(送信元アドレス)を増やしたいな〜と思った時も追加で購入できる。

あとサブユーザについてはAWSでいうIAMみたいなもので、複数人が使用する場合権限を制限したアカウントを最大15アカウントまで発行することができるのでセキュリティ的に良いかも。

支払い情報を登録して有料プランを契約

審査が完了したら

f:id:y_hakoiri:20200317085327p:plain

ログイン情報が送られてくるのでログイン。

先に支払い情報を登録しないと有料プランを契約できないので、まずはここから。

クレジット払いならマイページから自分で登録できるけど、請求書払いの場合はメールでお願いする必要があるのでまたここでもタイムラグ。早めにやっとくことをオススメする。(とはいえ対応が神ほど速い)

請求書払いにするには、どうしたらいいですか? – サポート

まとめ

一旦今回はここまで。

とりあえず最低限の準備というか、アカウント発行から実際に中身を使い始めるまでの基本的なところまでまとめられたかな。

次回はAPIキーの発行やらドメインの登録やら、DNSへのレコード登録やらをまとめられたらと思います。

参考:SendGrid | メールを成功の原動力に。