Heroku add-onのSendGridを使ってRuby on railsでメール送信する方法

こんにちは。フリーランスエンジニアの村上です。

この週末はRuby on railsで会員登録機能付きのWebサイトを作ってます。

認証用のメール送信機能が必要になり、無料で簡単に使えるメールサーバーを探していたところHerokuを使っていれば SendGrid というメール配信サービスと簡単に連携できることを知りました。

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

今回はSendGridのSMTPサーバーを使ってrailsでメール送信する設定をメモしておきます。

SendGridとHerokuを連携する

Heroku add-onからSendGridを探して連携します。

SendGridと連携するにはHerokuにクレジットカード情報を登録しておく必要がありますが、無料で使えます。

SendGrid – Add-ons – Heroku Elements

↓「Install SendGrid」ボタンを押します。

↓プランは「Starter – Free」を選択肢、SendGridを連携させたいアプリを選び、「Provision add-on」ボタンをクリックして少し待てば連携完了です。

SendGridでAPIキーを生成する

次に、SMTPのパスワードにつかうAPIキーを発行します。

HerokuのアプリのResourcesタブからSendGridを選択。

SendGridの管理画面に移動するので、左メニュの「Sender Whiz」→「Setup Guide」を選択。

Integrate using our Web API or SMTP relayの「Start」ボタンを押す。

SMTP Relayを選択。

My First API Key Nameにキーの名前を入れて「Create Key」ボタンを押します。

キー名は何でもいいです。

キーが生成されて、自動的にセットされます。

この時表示されたキーをSMTPのパスワードとして使うので、必ずメモしておきましょう。

I’ve updated my settings.にチェックを入れて、Next: Verify Integrationボタンを押します。

ボタンを押して、動作確認用のメールを送ります。

確認失敗してもこの時点でキーは生成済みで使えます。

railsでSMTPの設定をする

railsのAction MalerでSMTPの設定をします。

config/environments/development.rb に以下の設定を追加します。

user_nameはapikey固定になります。

passwordに先ほどSendGridで設定したAPI Keyを指定します。

これでrailsのAction Malerでメールが送れるようになるはずです。

まとめ

  • Heroku add-onでSendGridと連携する。
  • SendGridでAPI Keyを発行する。
  • API KeyをSMTPのパスワードに使う。
  • SMTPのユーザー名はapikey固定になる。

ユーザー名とパスワードの設定が少し独特な感じがしました。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*