概要
ActionMailerを使って新規登録時にwelcomeメールを送ります。
前提
deviseを用いての、ログイン機能の実装。
導入手順
1. ActionMailerを利用する設定
welcomeメールの送信元はGmailを使う記載方法。
config/environments/development.rb
にてActionMailerの設定方法の記述。
development.rb
Rails.application.configure do
# ---中略---#
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
port: 587,
address: 'smtp.gmail.com',
domain: 'gmail.com',
user_name: '送信元アドレス',
password: 'アプリパスワード',
authentication: :plain,
enable_starttls_auto: true
}
アプリパスワードは2段階認証を設定の上16桁のパスワードを発行し、アプリパスワードに記載する。
以下、参考にさせていただきました。
・[Google メールアプリケーション用のパスワードを取得する]
(https://qiita.com/miriwo/items/833d4189140831c5d039)
・[Google 二段階認証設定をONにする方法]
(https://qiita.com/miriwo/items/0331e7241710fb4759fe)
2. Mailerクラス作成
$ rails g mailer UserNotice
3. Mailerクラス編集
app/mailers/user_notice_mailer.rb
class UserNoticeMailer < ApplicationMailer
def send_signup_email(user)
@user = user
mail to: @user.email, subject: "会員登録が完了しました。"
end
end
4. メール本文作成
app/views/user_notice_mailer/send_signup_email.text.erb
ようこそ <%= @user.name %> 様
この度はアカウント登録頂きましてありがとうございます。
5. Userモデル編集
app/models/user.rb
# ---追加---#
after_create :send_welcome_mail
def send_welcome_mail
UserNoticeMailer.send_signup_email(self).deliver
end
after_create を使うことで、Userが新規作成された後にメールを送信するためのメソッドを呼び出すことができます。
以上で、welcomeメールが送信されるはずです。