&tag(ActiveMailer);
# app/mailers/application_mailer.rb class ApplicationMailer < ActionMailer::Base default from: "[email protected]" layout 'mailer' end # app/mailers/user_mailer.rb class UserMailer < ApplicationMailer end
class MyMailer < ActionMailer::Base end
class UserMailer < ApplicationMailer default from: '[email protected]' def welcome_email(user) @user = user @url = 'http://example.com/login' mail(to: @user.email, subject: 'Welcome to My Awesome Site') end end
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<h1><%= @user.name %>様、example.comへようこそ。</h1>
<p>
example.comへのサインアップが成功しました。
your username is: <%= @user.login %>.<br>
</p>
<p>
このサイトにログインするには、<%= @url %>をクリックしてください。
</p>
<p>ご入会ありがとうございます。どうぞお楽しみくださいませ。</p>
</body>
</html>
class UsersController < ApplicationController
# POST /users
# POST /users.json
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
# 保存後にUserMailerを使用してwelcomeメールを送信
UserMailer.welcome_email(@user).deliver_later
format.html { redirect_to(@user, notice: 'ユーザーが正常に作成されました。') }
format.json { render json: @user, status: :created, location: @user }
else
format.html { render action: 'new' }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
end