ある特定のアクションを行ったら、メールが届くようにしたい!というニーズありませんか?
というわけで、いまとなってはかなりポピュラーな技術ですが、基本的なMailerの設定方法について記します。
1.メーラーを設定
まず、MailerというControllerに相当するクラスを生成します。
rails generate メーラーの名前 メソッド名[オプション]
今回、TestMailerというメーラーを作成したとします。
rails generate mailer TestMailer sendmaild_confirm
class TestMailer < ActionMailer:Base
default from: 'test@gmail.com'
cc: 'test_test@gmail.com'
def sendmail_confirm(user)
@user = user
mail(to: user.email, subject:'ユーザー登録ありがとうございました。')
end
end
default
メソッドでデフォルトのヘッダー情報を設定します。
def
以下はコントローラーでいうアクションメソッドです。
2. メールのレイアウトを編集する。
rails generate mailer TestMailer sendmaild_confirm
を行った際に、
app/views/test_mailer/sendmail_confirm.text.rb
というファイルが生成されたかと思います。
sendmail_confirm.text.rb
に好きな文言を入力してください。もし、HTMLメールを送信したい場合は、sendmail_confirm.html.erb
にHTMLを書いてください。
登録完了しました!
<HTML>
<p>登録完了しました!</p>
</HTML>
3.任意のコントローラーに設定
最後は、任意のアクションコントローラーのアクションにメーラーを呼び出すメソッドを書くのみです。
今回は、ユーザー登録が完了したら自動で登録完了メールを送るとしましょう。
def create
@user = User.new(paramas[:user])
if @user.save
TestMailer.sendmail_confirm(@user).deliver #.deliverでメールを送信
redirect_to user_path
else
render `new`
end
end
deliver
メソッドを使用してTest Mailerのsendmail_confirmのメールを@userに送信します。
基本的なメーラーの設定は以上になります。