railsのaction mailerでメール通知機能を作る手順についてまとめていきます。
やりたいこととしては下記
- controllerから呼び出してactionmailerでメール送信
全体像
- application_mailerにてデフォルトの設定
- mailerを作成し、mailer.rbにメールの内容を設定(controllerのような役割
- viewにメール本文記載
- controllerに発火タイミングを記載
application_mailerにてデフォルトの設定
/app/mailers/application_mailer.rbに下記設定
class ApplicationMailer < ActionMailer::Base
default from: "from@example.com"
layout "mailer"
end
mailer作成
rails generate mailer UserMailer
上記コマンドでmailer作成。これにより下記ファイルが生成
-
app/mailers/marumaru_mailer.rb
: メーラーのメインファイル。 -
app/views/marumaru_mailer/
: このメーラーに関連するビューファイルを格納するディレクトリ。
viewにメール本文
app/views/marumaru_mailer/のディレクトリ内にファイル作成。
ファイル名はメソッド名と一緒に。
text.erbで作成するとhtmlメールではなくテキストメールになる。
controller
NotificationMailer.send_oubo_notification("なんか引数あったらここに").deliver_later
上記をcontrollerにかいて送信。