Action Mailer
メイラーの作成
メイラーは概念上コントローラと似通っており、メイラーを生成すると (コントローラと同様に) ビューのディレクトリとテストも同時に生成される。
% rails g mailer UserMailer account_activation
UserメイラーとApplicationメイラーの編集
mailに渡すキーはtoが宛先、subjectが件名
class UserMailer < ApplicationMailer def account_activation(user) @user = user mail to: user.email, subject: "Account activation" end end
class ApplicationMailer < ActionMailer::Base default from: "noreply@example.com" layout 'mailer' end
メール文面のテキストビューとHTMLビューを編集
app/views/user_mailer/account_activation.text.erb
Hi <%= @user.name %>, Welcome to the Sample App! Click on the link below to activate your account: <%= edit_account_activation_url(@user.activation_token, email: @user.email) %>
app/views/user_mailer/account_activation.html.erb
<h1>Sample App</h1> <p>Hi <%= @user.name %>,</p> <p> Welcome to the Sample App! Click on the link below to activate your account: </p> <%= link_to "Activate", edit_account_activation_url(@user.activation_token, email: @user.email) %>
コントローラにメール送信処理を記述
deliver_now:メールをすぐ送る
class UserController < ApplicationController def create ... UserMailer.account_activation(@user).deliver_now end