1. mailerを作成
$ rails generate mailer UserNotifier
app/mailers/usernotifier.rb
class UserNotifier < ActionMailer::Base
default :from => 'any_from_address@example.com'
# send a signup email to the user, pass in the user object that contains the user's email address
def send_signup_email(user)
@user = user
mail( :to => @user.email,
:subject => 'Thanks for signing up for our amazing app' )
end
end
2. templateを作成
app/views/Usernotifier/send_signup_email.erb
<!DOCTYPE html>
<html>
<head>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>
<body>
<h1>Thanks for signing up, <%= @user.name %>!</h1>
<p>Thanks for joining and have a great day! Now sign in and do
awesome things!</p>
</body>
</html>
3. SendGridを利用するように設定
config/environment.rb
ActionMailer::Base.smtp_settings = {
:user_name => 'your_sendgrid_username',
:password => 'your_sendgrid_password',
:domain => 'yourdomain.com',
:address => 'smtp.sendgrid.net',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}
4. UserNotifier.send_signup_email(@user).deliverなどの様にして呼び出す。
app/controllers/users_controller.rb
class UsersController < ApplicationController
def create
# Create the user from params
@user = User.new(params[:user])
if @user.save
# Deliver the signup email
UserNotifier.send_signup_email(@user).deliver
redirect_to(@user, :notice => 'User created')
else
render :action => 'new'
end
end
end