これまでに作った機能について簡単にまとめていく。
今回は、
開発環境のメール送信機能の作成
前提条件
ログイン機能があること
ログイン機能についてはこちら
使用モデル
Userモデル
| カラム | データ型 | |
|---|---|---|
| 1 | name | string |
| 2 | string | |
| 3 | password_digest | string |
Gemの導入
letter_opener_webは、送信したメールを確認するGem
group :development do gem 'letter_opener_web' end
bundle installの実行
ルーティングの設定
if Rails.env.development? mount LetterOpenerWeb::Engine, at: "/letter_opener" end
開発環境でのメール送信の設定
config/environments/development.rb
config.action_mailer.default_url_options = { host: 'localhost:3000' }
config.action_mailer.delivery_method = :letter_opener_web
以上でhttp://localhost:3000/letter_openerより
送信されたメールを確認可能
メイラーの作成
今回は、ユーザー登録時の通知メールを作成
$ rails g mailer EntryMailer
メール送信処理の作成
app/mailers/entry_mailer.rb
class EntryMailer < ApplicationMailer
def comfirm_mail(user)
@mail = user.mail
@user = user.name
mail to: "#{@mail}", subject: "ご登録が完了しました。"
end
end
メール本文の作成
app/views/entry_mailer/comfirm_mail.html.erb
<%= @user %>様のご登録が完了しました。
メーラーの呼び出し
app/controllers/users_controller.rb
class UsersController < ApplicationController
def create
@user = User.new(user_params)
if @user.save
EntryMailer.confirm_mail(@user).deliver
redirect_to root_path
else
render 'new'
end
end
end
以上で作成完了
