IT技術にまつわる実験ノート

「長編を書くより、短編を数多く完成させてください。それが上達への近道です」 by 手塚治虫

自作Webアプリ「IT勉強会用 名刺ジェネレーター」を公開しました!ぜひご活用ください😀

https://it-benkyoukai-meishi.herokuapp.com/

ローカルで sendgrid を使ってみる

sendgrid のアカウントを作成する

sendgrid を使うには、アカウントを作成する必要がある。登録を完了すると、翌2営業日以内に「ユーザー名」が送信されてきて、sendgrid を使えるようになる。

f:id:matt-note:20190514122619p:plain

-> 情報を入力していくと、登録完了になる。

 

アプリを作成する

ざっくりとアプリを作成する。

  • rails new sendgrid_sample
  • cd sendgrid_sample

 

gem をインストールする。

ここでは環境変数の管理で使う figaro と、認証で使う devise をインストールする。

  • echo 'gem "figaro"' >> Gemfile
  • echo 'gem "devise"' >> Gemfile
  • bundle

 

figaro で環境変数を管理する

figaro のコマンドを実行して、初期設定をする。

  • bundle exec figaro install

 

config/application.yml で環境変数の管理を行う。

ユーザー名は、登録を完了した後に sendgrid から送られてくるユーザー名を使う。

f:id:matt-note:20190514125259p:plain

 

公式のドキュメントを参考にして、config/environment.rb を設定する。

ここではローカルの8888番ポートを使うことにする。

f:id:matt-note:20190514130301p:plain

 

devise の初期設定をする

ジェネレーターを使って、devise の初期設定をする。

 

config/environments/development.rb にメールの設定を追加する。

f:id:matt-note:20190514131649p:plain

 

メイラーを作成する

ジェネレーターを使って、メイラーを作成する。

  • bin/rails g mailer UserMailer

 

app/mailers/user_mailer.rb を作成する。

ここでは、ユーザーがアプリに登録したらメールを送信することにする。

f:id:matt-note:20190516105415p:plain

 

app/views/user_mailer/welcome.html.erb を作成する。

ビューのファイル名は、メイラーのメソッド名と同じにする。

f:id:matt-note:20190516105558p:plain

 

devise のコントローラをカスタマイズする

ジェネレーターを使って、devise のコントローラをカスタマイズする。

  • bin/rails g devise:controllers users

 

config/routes.rb で devise のデフォルトのルーティングを上書きする。

f:id:matt-note:20190516110105p:plain

 

app/controllers/users/registrations_controller.rb で、ユーザー登録した後にメール送信するメソッドを呼び出す。

f:id:matt-note:20190516110224p:plain

 

登録してメールを送信する

8888番ポートを使って、サーバーを起動する。

 

サインアップ画面にアクセスする。

f:id:matt-note:20190516105813p:plain

 

自分のメールアドレスを登録すると、メールが届く。

f:id:matt-note:20190516110421p:plain

-> sendgrid を使って、Rails アプリからメール送信することができた。