これまでに作った機能について簡単にまとめていく。
今回は、
開発環境のメール送信機能の作成
前提条件
ログイン機能があること
ログイン機能についてはこちら
使用モデル
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
以上で作成完了