SendGrid

背景

Discourseをセットアップしようとしていたところ、いくつかのEmailプロバイダが紹介されていた。

Discourseはセットアップにメールサーバが要求される。以前のMastodonのセットアップでは、Gmailとアプリパスワードを使った簡易セットアップを使ったが、経験積みとセキュリティ上の懸念から、今回はメールサーバを用意することにした。

名前を聞いたことのあるSendGridを使う。業務上の利用を想定しているようだが、個人による利用として続行する。スケールする商用サービスでの利用ではないが、利用経験は技術選定の上で大事だと思う。その分、Abuseしないように考えなければならないが。

Freeプラン

1日に100メールまではFreeプランが使用できる。自分しか使わない、またはごくごく小規模な利用では十分だろう。

登録

Start For Freeから登録する。

"Start For Free"をクリックする

細かい登録の過程は省略する。

ドメインの認証

ダッシュボードを開く。

"authenticate a domain instead"をクリックする DNSホストの選択

ドメインプロバイダ(DNSホスト)の選択を求められる。 お名前.comはリストになかったので、Other Host (Not Listed)を選択し続行する。 あまり意味はないだろうが、Which DNS Hostにプロバイダ名を書いておく。

ドメイン名の入力

ドメイン名を入力する。

認証用のDNSレコード情報

DNSサーバに登録すべき認証用のレコードが表示される(DNSサーバにクエリを送れば誰でも確認できるので公開情報)。

お名前.comでのDNSレコード設定

ドメインプロバイダ/DNSサーバでDNSレコードを設定する。 設定が反映されるまでしばらく待つ。

ドメイン認証完了

ドメインが認証された。 これでSendGridを使って、このドメインからのメールを送信できるようになった。

APIキーの発行(送信テスト)

APIキーの利用方法の選択

Web APIを選択する。

プログラミング言語/利用プログラムの選択

プログラミング言語/利用プログラムを選択する。チュートリアルの出し分けをするだけで、ここでの選択に特に意味はないと思われる(チュートリアルなしでAPIキーを発行もできる: https://app.sendgrid.com/settings/api_keys)。

APIキーの発行

とりあえずcURLでテストすることにして、APIキーを発行する。

下のcurlコマンドの送信JSONデータを編集する。 toを自分のメールアドレス、fromを認証したドメインのメールアドレスに変える。 特にfromのメールアカウントを作成する必要はなく、 hoge@example.comのように適当なアカウント名をつけたアドレスを使えばよい。

受信したEメール

コマンドを適当な端末で実行し、メールが届けば成功。

Eメール送信成功

SendGrid上でも送信成功を確認できる。