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

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

RailsでSendGridのAPIを使用する(2)【ドメイン設定・CNAMEレコード】

f:id:y_hakoiri:20191102121618j:plain

※この記事は何回かに分けてRailsでセンドグリッドAPIを使用する方法をまとめたものです。

前回はアカウント発行と有料プランへの登録までやったので、今回は実際にセンドグリッドの管理画面から各種設定をするところに入っていきたい。

ちなみに前回の記事はこちら。

RailsでSendGridのAPIを使用する(1)〜導入〜 - 箱のプログラミング日記。

やること

今回やることはざっくりとこんな感じ。

  • APIキーを発行する
  • 送信元ドメインの利用設定
  • DNSサーバーにCNAMEレコードを登録

(↑見ただけでワクワクするのは私だけ?笑)

では実際に一つずつ見ていきます。

APIキーを発行する

APIを使うにはAPIキーがないと始まらないので、とりあえず発行します。

詳しくは以下にある通りの流れ。結構分かりやすい。

APIキーの管理 - ドキュメント | SendGrid

(ちなみに↑の日本公式サイトやログイン画面までは日本語だけど、ダッシュボードからは英語。)

概要&注意事項だけ挙げておくと、

  • APIキーごとに「どこまでさせられるか」の権限を付与する(3種類から選択)
  • APIキーは一度発行したら後からキー自体を確認することができないので必ずどこかに控えておく

1アカウントにつきAPIキーは100個まで登録できるようなので、基本的には権限を細かく分けて、一つのAPIキーに色んなことをさせられないようにするのが良さそう。(もっとも、そんないっぱい使わないだろうけど)

キーごとの権限については以下の3種類

f:id:y_hakoiri:20200318082011p:plain

  • Full Access(なんでもできる)
  • Restricted Access(項目ごとにカスタマイズして権限付与)
  • Billing Access(マーケ関連?日本語サイトからアカウント登録した場合使えない)

今回は「メール送信だけできるAPIキー」を発行したいので、Restricted Accessを選択して

f:id:y_hakoiri:20200318083354p:plain f:id:y_hakoiri:20200318083408p:plain

「Mail Send」をFull Accessにする。

このへんの設定は後から編集することができるので、他の権限も与えたくなった場合はまた追加すればOK。

送信元ドメインの利用設定

(ドメイン自体の購入等は済ませておいてください)

実際これはやらなくても、メール送信時に送信元アドレスを指定すればそこから問題なく送信できるのだけど、

この作業をやらないと、受信メールで以下のように「SendGrid経由」と表示される。

f:id:y_hakoiri:20200318084405p:plain (赤丸の左に表示されているのが指定した送信元アドレス)

受信したユーザーからしたらふつうに「???」という感じだ。

この設定の仕方も公式に詳しく載ってるので下記参照。

独自ドメインを利用する - ドキュメント | SendGrid

センドグリッドて定義されている「独自ドメイン利用設定」には3種類あって、

f:id:y_hakoiri:20200318085058p:plain

今回のように「SendGrid経由」を消したい場合は一番左の「Domain Authentication」の設定のみやればOK。(右2つについては現状まだ触ってないので、今後必要がありそうだったら着手&補足します。)

Domain Authentication設定の流れとしては以下の通り

  • 送信元アドレスのドメインと利用しているDNSサーバーを選択
  • 自動生成されたCNAMEレコード(3つ)をDNSサーバーに追加

次に続きます。

DNSサーバーにCNAMEレコードを登録

先ほどの公式の流れに沿って色々入力していくと、SendGrid側で「このレコードをあなたのDNSサーバーに追加してくださいよ〜」っていうのを勝手に作ってくれるので、それをそのまま追加するだけ。

ちなみに私の場合はAWSのRoute53を使用しているので

f:id:y_hakoiri:20200318085933p:plain

プルダウンから選択。

そうすると以下のようにレコードの見本が生成されるので、それをRoute53に追加する。

f:id:y_hakoiri:20200318090238p:plain

(既に登録済みのためステータスがVerifiedになってるけど、こうなるのはRoute53での設定が済んでから)

Route53で該当ドメインのホストゾーンに入り、「レコードセットの作成」をクリックして、

f:id:y_hakoiri:20200318092337p:plain

先ほどのレコード情報を順次入れていく。

  • 名前: 生成されたレコードのHOST(ドメインより前のみ)
  • タイプ: CNAME
  • エイリアス: いいえ
  • TTL(秒): 3600
  • 値: 生成されたレコードのVALUE
  • ルーティングポリシー: シンプル

エイリアス、TTL、ルーティングポリシーについては特に指定されていなかったので一瞬迷ったけど、普通に送信できているのでおそらくこれで問題なさそう。

これを3回分行えばDNS側での設定は完了。

あとは公式にあるように再度センドグリッドの設定画面でレコードの認証が済んでいるかを確認し、ステータスが「Verified」になったらOK。

まとめ

  • APIキーを発行する
  • 送信元ドメインの利用設定
  • DNSサーバーにCNAMEレコードを登録

今回の記事は一旦以上になります。

次回はいよいよ実装編!!